setup.py installs modules to a wrong place

Michal Ludvig mludvig at logix.net.nz
Fri Dec 19 00:21:27 CET 2008


Ping!

Does anyone know what the problem could be?

The bug reported provided some more information recently...

The modules have been installed to /usr/lib/python2.5/site-packages as
show below.

Apparently on his system /usr/lib/python2.5 is a symlink to
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5

While this directory *is* in sys.path, the .../site-packages one isn't,
see below in my original post.

So why did Python decide to put the modules there? Why not one of the
directories that are in sys.path? Is this configurable somewhere?

Thanks!

Michal

Michal Ludvig wrote:
> 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
> 




More information about the Python-list mailing list