At 12:21 PM 11/30/2005 -0600, [EMAIL PROTECTED] wrote: > Phillip> Skip, if you want to use a custom install location using > Phillip> PYTHONPATH, you need to read this section: > > Phillip> > http://peak.telecommunity.com/DevCenter/EasyInstall#traditional-pythonpath-based-installation > >Folks, > >Please note a couple things: > > 1. I use pth files, not PYTHONPATH. They are much easier to control > than insuring the every user of the system (even the daemon-ish ones) > have PYTHONPATH set properly. I have one pth file in the system > install. That's the full extent of the pollution of that directory > tree. I want to keep it that way. ISTM that setuptools should be > able to easily deduce what the default sys.path is, since Python does > the heavy lifting of parsing/executing pth files for you: > > python -c 'import sys ; print ":".join(sys.path)' > > Voila! Now setuptools should know that /usr/local/mojam/lib/ > python2.3/site-packages *is* in sys.path and that I'm not trying to > install packages for some sort of offbeat Python installation.
This isn't the issue; setuptools uses .pth files itself, but Python won't process .pth files in your custom directory unless you take additional steps. The two approaches I linked to are two different ways of getting Python to process the .pth files that setuptools uses (and easy_install installs). There's also a third way, which I just posted, and which is also described under the --site-dirs option of the EasyInstall docs. >I'll take a look. At first blush I'm a bit put off by the notion it seems >to promote that somehow using .pth files is wrong. On the contrary, setuptools deals with them just fine, and uses them just fine. The problem is that your *Python* won't process the .pth files installed by easy_install unless you take additional steps. This is literally a Python problem, in that Bob Ippolito has previously filed bugs and patches requesting that .pth processing be transitive. That is, that if you list a directory in a .pth, any .pth files in *that* directory should be processed. Guido has vetoed this at least once already, though. The workaround is to use an 'import' hack in your .pth file and call site.addsitedir(). It's a pain to set up, but it works. > I think you should be >able to deal with them straight out of the box, no tricks required, >especially considering they are blessed as part of the default site.py, and >not likely to go away soon. Unfortunately, Python provides no way to know which directories will have .pth files processed. EasyInstall therefore uses the default Python algorithm for determining "site" directories, which will fail if Python has been patched (e.g. under Debian to add /usr/local stuff) or if you use the 'import' hack to fix the non-transitive .pth problem. _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org http://mail.python.org/mailman/listinfo/distutils-sig