Odd error

John Machin sjmachin at lexicon.net
Sat Mar 17 05:30:48 EDT 2007


On Mar 17, 4:34 pm, "Joshua.R.Engl... at gmail.com"
<Joshua.R.Engl... at gmail.com> 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




More information about the Python-list mailing list