New submission from Michael Smith <msm...@cbnco.com>:

I've built Python 2.6.2 with a prefix of "" for an embedded system, so it's 
installed into /bin/python, /lib/python2.6/, etc.

If I run a script with "python /tmp/script.py" or by putting in a #!/bin/python 
and executing it directly, sys.path is missing the leading slashes:

['/tmp', 'lib/python26.zip', 'lib/python2.6/', 'lib/python2.6/plat-linux2', 
'lib/python2.6/lib-tk', 'lib/python2.6/lib-old', 'lib/lib-dynload']

This causes all module imports to fail. I can work around this by making /usr a 
symlink to / and running the script as "/usr/bin/python /tmp/script.py", or by 
setting PYTHONHOME=/ before starting Python.

In Modules/getpath.c, search_for_prefix() calls reduce() on argv0_path at the 
end of a do-while loop, so "/bin" becomes "" and the loop terminates. Then 
there's a call to joinpath(PREFIX, "lib/python2.6"), where PREFIX is "", and 
this fails (no leading slash).

calculate_path() warns:

Could not find platform independent libraries <prefix>

and falls back to joinpath(PREFIX, "lib/python2.6") again, which still fails.

I was thinking I could work around it by building with prefix="/" instead of 
"", but the behaviour is the same - I don't know why, yet.

----------
components: Interpreter Core
messages: 98152
nosy: msm...@cbnco.com
severity: normal
status: open
title: sys.path is incorrect when prefix is ""
type: behavior
versions: Python 2.6

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue7757>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to