F
Fuzzyman
A very odd error with Python 2.5 (both 2.5.1 and 2.5.2 from the
official msi installers and running on Vista under Parallels on the
Mac).
'import site' fails due to a string in sys.path that contains a huge
number of null bytes.
The error is actually in ntpath - I adjusted it to print the paths it
is working with and a string on encountering the bad path.
Because 'import site' is executed twice with the following code I
snipped the first dump and only print the one with the traceback:
C:\Users\Administrator>python -c "import site"
[snip]
'import site' failed; use -v for traceback
set(['c:\\python25\\lib\\plat-win', 'c:\\windows\\system32\
\python25.zip', 'c:\\
python25', 'c:\\python25\\lib\\lib-tk', 'c:\\users\\administrator', 'c:
\\python2
5\\dlls', 'c:\\python25\\lib', 'c:\\python25\\lib\\site-packages'])
******************** BAD PATH ********************
"C:\\Python25\\lib\\site-packages\\\x00\x05\x16\x07\x00\x02\x00\x00Mac
OS X
\x00\x02\x00\x00\x00\t\x00\x00\x002\x00\x00\x0e
\xb0\x00\x00\x00\x02\x00\x00\x
0e\xe2\x00\x00\x01\x1e
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x
00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00AT
TR\x00\x00\x00!\x00\x00\x0e\xe2\x00\x00\x00\x98\x00\x00\x00
\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x98\x00\x00\x00
\x00\x0
0\x15com.macromates.caret\x00x\x9c\xab\xe6R\x00\x82\xe4\xfc\x9c
\xd2\xdc<\x05[\x0
5\x03k0?'3/\x15\xc2\xab\x05\x00\x8b\x99\x08\x1d
\x00\x00\x00\x00\x00\x00\x00\x00\
x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
[snip a load of null bytes]
x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x1eThis resource
fork intent
ionally left blank
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0
[snip a load more null bytes]
0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0
0\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x1e
\x00\x00\x00\x00\x0
0\x00\x00\x00\x00\x1c\x00\x1e\xff\xff"
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Python25\lib\site.py", line 417, in <module>
main()
File "C:\Python25\lib\site.py", line 402, in main
paths_in_sys = addsitepackages(paths_in_sys)
File "C:\Python25\lib\site.py", line 206, in addsitepackages
addsitedir(sitedir, known_paths)
File "C:\Python25\lib\site.py", line 169, in addsitedir
addpackage(sitedir, name, known_paths)
File "C:\Python25\lib\site.py", line 141, in addpackage
dir, dircase = makepath(sitedir, line)
File "C:\Python25\lib\site.py", line 67, in makepath
dir = os.path.abspath(os.path.join(*paths))
File "C:\Python25\lib\ntpath.py", line 500, in abspath
path = _getfullpathname(path)
TypeError: _getfullpathname() argument 1 must be (buffer overflow),
not str
Odd. Anyone got any clues?
Michael Foord
http://www.ironpythoninaction.com
official msi installers and running on Vista under Parallels on the
Mac).
'import site' fails due to a string in sys.path that contains a huge
number of null bytes.
The error is actually in ntpath - I adjusted it to print the paths it
is working with and a string on encountering the bad path.
Because 'import site' is executed twice with the following code I
snipped the first dump and only print the one with the traceback:
C:\Users\Administrator>python -c "import site"
[snip]
'import site' failed; use -v for traceback
set(['c:\\python25\\lib\\plat-win', 'c:\\windows\\system32\
\python25.zip', 'c:\\
python25', 'c:\\python25\\lib\\lib-tk', 'c:\\users\\administrator', 'c:
\\python2
5\\dlls', 'c:\\python25\\lib', 'c:\\python25\\lib\\site-packages'])
******************** BAD PATH ********************
"C:\\Python25\\lib\\site-packages\\\x00\x05\x16\x07\x00\x02\x00\x00Mac
OS X
\x00\x02\x00\x00\x00\t\x00\x00\x002\x00\x00\x0e
\xb0\x00\x00\x00\x02\x00\x00\x
0e\xe2\x00\x00\x01\x1e
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x
00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00AT
TR\x00\x00\x00!\x00\x00\x0e\xe2\x00\x00\x00\x98\x00\x00\x00
\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x98\x00\x00\x00
\x00\x0
0\x15com.macromates.caret\x00x\x9c\xab\xe6R\x00\x82\xe4\xfc\x9c
\xd2\xdc<\x05[\x0
5\x03k0?'3/\x15\xc2\xab\x05\x00\x8b\x99\x08\x1d
\x00\x00\x00\x00\x00\x00\x00\x00\
x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
[snip a load of null bytes]
x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\
x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x1eThis resource
fork intent
ionally left blank
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0
[snip a load more null bytes]
0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0
0\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x1e
\x00\x00\x00\x00\x0
0\x00\x00\x00\x00\x1c\x00\x1e\xff\xff"
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Python25\lib\site.py", line 417, in <module>
main()
File "C:\Python25\lib\site.py", line 402, in main
paths_in_sys = addsitepackages(paths_in_sys)
File "C:\Python25\lib\site.py", line 206, in addsitepackages
addsitedir(sitedir, known_paths)
File "C:\Python25\lib\site.py", line 169, in addsitedir
addpackage(sitedir, name, known_paths)
File "C:\Python25\lib\site.py", line 141, in addpackage
dir, dircase = makepath(sitedir, line)
File "C:\Python25\lib\site.py", line 67, in makepath
dir = os.path.abspath(os.path.join(*paths))
File "C:\Python25\lib\ntpath.py", line 500, in abspath
path = _getfullpathname(path)
TypeError: _getfullpathname() argument 1 must be (buffer overflow),
not str
Odd. Anyone got any clues?
Michael Foord
http://www.ironpythoninaction.com