
The eggs quick guide http://peak.telecommunity.com/DevCenter/PythonEggs#using-eggs says that eggs can be installed by just putting them on sys.path. This doesn't seem to be enough though. A .pth file seem to also be necessary. Am I missing something? Or is the documentation incorrect? Jim -- Jim Fulton mailto:jim@zope.com Python Powered! CTO (540) 361-1714 http://www.python.org Zope Corporation http://www.zope.com http://www.zope.org

At 10:46 AM 1/15/2006 -0500, Jim Fulton wrote:
The eggs quick guide http://peak.telecommunity.com/DevCenter/PythonEggs#using-eggs says that eggs can be installed by just putting them on sys.path. This doesn't seem to be enough though. A .pth file seem to also be necessary.
Am I missing something?
Two somethings. :) First, you *can* install an egg by putting it on sys.path. A .pth file is just one *way* of putting it on sys.path. What you're asking about is installing an egg by putting it *in a directory that's on sys.path*, which is a different thing. You can also do this, as long as you're using the pkg_resources API to request the egg, or it's one of your requirements specified by your egg. The only egg that absolutely *must* be in a .pth (or otherwise get onto sys.path) is the setuptools egg. As long as that's the case, then it is not necessary to have .pth files, because the act of require()-ing an egg will cause it and all its dependencies to be added.
Or is the documentation incorrect?
It might be a bit confusing about this issue, but I've so far found that changing it around doesn't help much. :( This is simply something so new to most people that they seem to project their existing thought process onto it no matter what it actually says, and then only get it after bumping into a problem or mental contradiction. If you think you can improve upon the comprehensibility without making it so complex that nobody will read it anyway, feel free to submit a patch. :)

Phillip J. Eby wrote:
At 10:46 AM 1/15/2006 -0500, Jim Fulton wrote:
The eggs quick guide http://peak.telecommunity.com/DevCenter/PythonEggs#using-eggs says that eggs can be installed by just putting them on sys.path. This doesn't seem to be enough though. A .pth file seem to also be necessary.
Am I missing something?
Two somethings. :)
First, you *can* install an egg by putting it on sys.path. A .pth file is just one *way* of putting it on sys.path.
Ah
What you're asking about is installing an egg by putting it *in a directory that's on sys.path*, which is a different thing. You can also do this, as long as you're using the pkg_resources API to request the egg, or it's one of your requirements specified by your egg.
The only egg that absolutely *must* be in a .pth (or otherwise get onto sys.path) is the setuptools egg. As long as that's the case, then it is not necessary to have .pth files, because the act of require()-ing an egg will cause it and all its dependencies to be added.
Sure, but then you have to call require. :)
Or is the documentation incorrect?
It might be a bit confusing about this issue, but I've so far found that changing it around doesn't help much. :( This is simply something so new to most people that they seem to project their existing thought process onto it no matter what it actually says, and then only get it after bumping into a problem or mental contradiction. If you think you can improve upon the comprehensibility without making it so complex that nobody will read it anyway, feel free to submit a patch. :)
I think that a sentance or 2 saying that when you talk about putting an egg on sys.path or in PYTHONPATH you mean putting the path to the egg file in the list of paths. I suggest that: "If you have a pure-Python egg that doesn't use any in-package data files, and you don't mind manually including the path to the egg file in sys.path or in PYTHONPATH, you can use the egg without installing setuptools. " Would be much clearer. The original text talks about putting the *egg* *on* sys.path or PYTHONPATH. This is missleading in 2 ways: 1. You aren't putting the egg anywhere. You are putting the name of the egg somewhere. 2. When we talk about putting something "on" a path, that suggests (at least to me) that you'll be able to find it in one of the directories specified in the path. Jim -- Jim Fulton mailto:jim@zope.com Python Powered! CTO (540) 361-1714 http://www.python.org Zope Corporation http://www.zope.com http://www.zope.org

Phillip J. Eby wrote:
At 10:46 AM 1/15/2006 -0500, Jim Fulton wrote:
The eggs quick guide http://peak.telecommunity.com/DevCenter/PythonEggs#using-eggs says that eggs can be installed by just putting them on sys.path. This doesn't seem to be enough though. A .pth file seem to also be necessary.
Am I missing something?
Two somethings. :)
First, you *can* install an egg by putting it on sys.path. A .pth file is just one *way* of putting it on sys.path.
I can read that two ways, with Jim's reading being more likely. Maybe it would be better to say that you can install an egg by making sure sys.path points to the egg. Being "on" sys.path can mean either "being in that list of paths" and "contained by a directory on that list of paths." -- Ian Bicking | ianb@colorstudy.com | http://blog.ianbicking.org
participants (3)
-
Ian Bicking
-
Jim Fulton
-
Phillip J. Eby