I'm a little confused about egg files and installing them using easy_install, hope you can help me with it. (I read about people's recommendation on pip, but I'll like to understand this before I move on).
If I simply copy e,g django_guardian-1.0.2-py2.6.egg
from say, a thumbdrive and place in e.g ~/bar/
which PYTHONPATH was pointing to, trying to import the contents via import guardian
would yield me importError. This error occur even if I have the easy_install.pth
copied in
import sys; sys.__plen = len(sys.path)
./django_guardian-1.0.2-py2.6.egg
import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys
'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)
Now, using easy_install django-guardian
, of course had no such problem.
I navigated to the directory the egg file was easy_installed to, and all it contains was the .pth
and the .egg
file. I wish to know what other procedures/entries does easy_install makes somewhere that makes the first method unusable....
easy_install
uses .pth
files to add the .egg
files to sys.path
-- the list of locations where Python searches for modules to import.
.pth
files are processed by the site
module, but only in four pre-defined directories. These directories are platform-specific and based on the sys.prefix
and sys.exec_prefix
settings. On Unix, the most prominent usually is /usr/lib/pythonXX/site-packages
.
Since your custom directory is not one of the directories processed by site
, your .pth
file won't get processed and Python won't look inside the .egg
.
For more information, see the site
module documentation.