Hi fellows,

I spent quite a time on a malicious issue. I found out that there is a slight difference on the sys.path content when either executing code from a shell or from within a script. This difference is the '' item, which is present in the shell form of sys.path.

For instance, let's write this code in test.py:
import sys
print sys.path

shell form:
python
Python 2.4.4 (#2, Oct 22 2008, 19:52:44)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import test
['', other misc stuff] <- sys.path


script form:
python test.py
[other misc stuff] <- sys.path

The '' item is not here.

Problem is, '' is required for absolute path to be properly resolved. In my code I sometimes have to import file in that way : __import__('/some/absolute/path')

So the immediate solution is to write this:
if '' not in sys.path:
sys.path.append('') # make sure absolute path are properly resolved in any case

I'm not a big fan of manipulating sys.path at the begining of my files. Is there something I'm doing wrong ? Is there a standard/nice way to support absolute path ? I guess '' is in fact aimed at resolving relative path from the execution directory...

best regards,

Jean-Michel
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to