Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

setup.py installs modules to a wrong place

2 views
Skip to first unread message

Michal Ludvig

unread,
Dec 13, 2008, 4:48:31 AM12/13/08
to pytho...@python.org
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

Michal Ludvig

unread,
Dec 18, 2008, 6:21:27 PM12/18/08
to pytho...@python.org
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

> --
> http://mail.python.org/mailman/listinfo/python-list
>

otra...@gmail.com

unread,
Dec 19, 2008, 7:10:39 PM12/19/08
to
Michal,

I'm seeing this on fc8 with a custom built python2.6. Not happening
with any other packages (e.g. boto). Workaround of course was just to
copy the S3 dir to /usr/local/lib/python2.6/site-packages.

I poked around a bit but nothing obvious jumped out. Happy to do any
debugging if you have tests you'd like to me to run.

-Omer

Michal Ludvig

unread,
Dec 29, 2008, 7:41:51 AM12/29/08
to otra...@gmail.com, pytho...@python.org
Hi Omer,

> I'm seeing this on fc8 with a custom built python2.6. Not happening
> with any other packages (e.g. boto). Workaround of course was just to
> copy the S3 dir to /usr/local/lib/python2.6/site-packages.

I've found it. The culprit was a pre-set install prefix in setup.cfg - I
can't remember why I put it there ages ago. Anyway, now it's removed ;-)

> I poked around a bit but nothing obvious jumped out. Happy to do any
> debugging if you have tests you'd like to me to run.

Thanks for the offer. I believe the current SVN trunk [1] of s3cmd
should install just fine everywhere.

Michal

[1] .. http://s3tools.logix.cz/download


0 new messages