On Mar 17, 4:34 pm, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote: > I'm trying to use a script that I originally wrote on a Mac Classic > machine and have moved to a Windows XP machine. > > I can open the script and edit the thing, but when I try to run it in > I get: > Exception in Tkinter callback > Traceback (most recent call last): > File "C:\Python25\lib\lib-tk\Tkinter.py", line 1403, in __call__ > return self.func(*args) > File "C:\Python25\lib\idlelib\MultiCall.py", line 151, in handler > r = l[i](event) > File "C:\Python25\lib\idlelib\ScriptBinding.py", line 151, in > run_module_event > dirname = os.path.dirname(filename) > File "C:\Python25\lib\ntpath.py", line 207, in dirname > return split(p)[0] > File "C:\Python25\lib\ntpath.py", line 172, in split > while head2 and head2[-1] in '/\\': > TypeError: 'int' object is not iterable > > I've converted the text to windows format, and the other scripts that > I transferred at the same time work. > > What's going on here?
The following demonstrate the correct behaviour of ntpath.split(): Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import ntpath >>> ntpath.split('foo\\\\') ('foo', '') >>> ntpath.split('foo\\\\bar\\\\') ('foo\\\\bar', '') >>> ntpath.split('foo\\\\bar') ('foo', 'bar') >>> ntpath.split('foo\\bar') ('foo', 'bar') >>> ntpath.split('\\\\bar') ('\\\\', 'bar') I can't see how this error could arise from the line: while head2 and head2[-1] in '/\\': The only possible iterable is the constant '/\\' ... You may have a corrupt Python 2.5 installation; try the above tests; if one fails, delete any ntpath.pyc and/or ntpath.pyo and try again. I'm suspicious of the 'lib' directory name; standard Python installations on Windows call the directory 'Lib' AFAIK; how did you install Python? HTH, John -- http://mail.python.org/mailman/listinfo/python-list