On 7/14/05, Phillip J. Eby firstname.lastname@example.org wrote:
At 11:26 AM 7/14/2005 +0100, Paul Moore wrote:
Hmm, I'm only looking on sys.path - I hadn't imagined that development software would be added to the *default* sys.path...
By default, if you use "develop" on a package, it becomes part of the default sys.path; this makes sense on machines that are "development" machines.
Ah! I don't work that way, so this hadn't occurred to me. No wonder I didn't follow the discussion on "develop" :-)
I'll have to think about this.
This is easily set on a per-user or sitewide basis; in a shop making use of these tools, you'd probably do this (as root):
setup.py setopt -g -c develop -o install_dir -s /somewhere/staging
Ooh, these setup commands that do global stuff unrelated to the package whose setup.py is being used confuse me! More to think about...
There's a get_python_lib() function in distutils that I use. However, I've recently discovered that the situation on Mac OS X is more complex; users have a ~/Library/python2.X/site-packages directory as well.
Sorry - I'm doing find_distribution() on every entry in sys.path. What I was getting at, is whether that process could miss any eggs which easy_install may have put into site-packages.
No; find_distributions(site_packages) would list everything installed in that directory, whether active or not, plus distributions for anything that was installed as a development link in site-packages. That is, even if *all* you call find_distributions() on is site-packages, it's still going to include distributions whose .path is elsewhere, and that's fine because you want to know about those anyway; just list them with a "(Development)" status or something in your output.
Sounds reasonable. There are lots of complexities here I hadn't considered, because I'm working purely from the POV of a *user* of eggs, not a *producer* of them. Maybe that's why bdist_wininst installers, simplistic though they are, suit a lot of my needs. (But that's leading onto another philosophical ramble, which I'll spare you... :-))