At 10:18 PM 6/11/2007 +0200, Jerome Alet wrote: >On Mon, Jun 11, 2007 at 04:00:34PM -0400, Phillip J. Eby wrote: > > > > > >Wouldn't it be better to use the effective user id when expanding > > >the user's home directory in setuptools or in Python ? > > > > That wouldn't fix your problem. The egg cache location is determined > > exactly *once* for the life of the process, unless you explicitly > > create and use ResourceManagers -- and unfortunately the process of > > importing C code from a zipped egg uses only the default ResourceManager. > >So you mean that if for example another (different) module installed >with setuptools was imported *before* the seteuid() call, then the >mysqldb module import (done *after* the seteuid() call) would >succeed ?
No. I'm saying that the directory for the default ResourceManager's cache is determined exactly once, and can't be changed thereafter for the effective life of the process. Thus, you must choose a location that is readable and writable by every user id that the process will be executing as, whether real or effective. >Then maybe setuptools should continue to work without creating/writing >any file in an user's .python-eggs directory if this is not allowed >to do so because of permissions (or different effective user). > >Instead it fails hard. Any plan to improve this ? You have several options. First, setuptools can build RPMs which install files in the usual way. Second, you can install eggs containing C code as directories instead of files (using easy_install --always-unzip), which then avoids the need for the use of the egg cache. Third, you can select an appropriate cache directory, either with the environment variable, or programmatically. _______________________________________________ Distutils-SIG maillist - [email protected] http://mail.python.org/mailman/listinfo/distutils-sig
