Message72118
If you install python in a location which has a space
or shell character in the path then platform.platform()
will generate an error and/or fail to get all platform
information.
For example
$ pwd
/disk0/tmp/foobar(2)/python2.4/bin
$ ./python
Python 2.4.4 (#8, Apr 11 2008, 11:42:39) [C] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform
>>> print platform.platform()
sh: syntax error at line 1: `(' unexpected
SunOS-5.10-sun4u-sparc-32bit
Note the error from 'sh' was well as the fact that "ELF"
is missing from the platform string. If you are in a path
with a space then it silently fails to identify "ELF".
The problem is in platform.py: _syscmd_file(target,default='')
in particular this line:
f = os.popen('file %s 2> /dev/null' % target)
This should be:
f = os.popen('file "%s" 2> /dev/null' % target)
Note the double quotes to protect the path from the shell.
I've examined the 2.5, 2.6 and 3.0 source and they all
have this same problem. |
|
Date |
User |
Action |
Args |
2008-08-29 00:40:13 | jfdp | set | recipients:
+ jfdp |
2008-08-29 00:40:13 | jfdp | set | messageid: <1219970413.68.0.263157286627.issue3719@psf.upfronthosting.co.za> |
2008-08-29 00:40:12 | jfdp | link | issue3719 messages |
2008-08-29 00:40:11 | jfdp | create | |
|