Hi, I have recently seen some reports from users of my s3cmd script [1] who installed the package using the provided distutils-based setup.py and immediately after installation the script failed to run because it couldn't find its modules.
Here's an example session from Mac OS X, but similar behaviour has been observed on Ubuntu as well. Needless to say it works for me just fine so I can't easily debug and fix it :-( First is the reported setup.py output: ----- ~/bin/s3cmd $ sudo python setup.py install Password: ... running install_lib creating /usr/lib/python2.5/site-packages creating /usr/lib/python2.5/site-packages/S3 copying build/lib/S3/PkgInfo.py -> /usr/lib/python2.5/site-packages/S3 ... more modules, etc ... ----- It decided to put the modules to /usr/lib/python2.5/site-packages/S3 Now, s3cmd should import from there, but fails: ~/bin/s3cmd $ s3cmd Traceback (most recent call last): File "/usr/bin/s3cmd", line 1207, in <module> from S3 import PkgInfo ImportError: No module named S3 sys.path at the time the script died had these entries: /usr/bin /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python25.zip /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5 /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-darwin /System/Library/Frameworks/Python.framework/Versions/2.5/...other_subdirs... /Library/Python/2.5/site-packages There is nothing special in setup.py. After all have a look yourself: http://s3tools.svn.sourceforge.net/viewvc/s3tools/s3cmd/trunk/setup.py?view=markup What could be the reason for distutils / setup.py to install the modules to a directory that's not in sys.path? Can I detect it in setup.py and prevent or workaround it somehow? Thanks! [1] http://s3tools.logix.cz/s3cmd -- Amazon S3 command line client Michal -- http://mail.python.org/mailman/listinfo/python-list