What is the Python egg cache (PYTHON_EGG_CACHE)?
From my investigations it turns out that some eggs are packaged as zip files, and are saved as such in Python's site-packages
directory.
These zipped eggs need to be unzipped before they can be executed, so are expanded into the PYTHON_EGG_CACHE
directory which by default is ~/.python-eggs
(located in the user's home directory). If this doesn't exist it causes problems when trying to run applications.
There are a number of fixes:
- Create a
.python-eggs
directory in the user's home directory and make it writable for the user. - Create a global directory for unzipping (eg.
/tmp/python-eggs
) and set the environment variablePYTHON_EGG_CACHE
to this directory. - Use the
-Z
switch when usingeasy_install
to unzip the package when installing.
The python egg cache is simply a directory used by setuptools to store packages installed that conform to the egg specification. You can read more about setuptools here.
Additionally, as the error message states, you can specify a different egg cache directory in your environment by setting PYTHON_EGG_CACHE=/some/other/dir. The easiest way to do this is to set it in your ~/.bash_profile (assuming you're using bash), like this:
export PYTHON_EGG_CACHE=/some/other/dir
You may need to set it in your Apache environment if you're using a Web application.