I’ve just upgraded from Python 2.6.1 to 2.6.4 on my development machine and upon starting a python script was presented with the following message:
Can’t extract file(s) to egg cache
The following error occurred while
trying to extract file(s) to the
Python egg cache:[Errno 13] Permission denied:
‘/var/www/.python-eggs’The Python egg cache directory is
currently set to:/var/www/.python-eggs
Perhaps your account does not have
write access to this directory? You
can change the cache directory by
setting the PYTHON_EGG_CACHE
environment variable to point to an
accessible directory.
There isn’t anything in the python docs so I’m at a bit of a loss regarding best-practices on where to put this directory and what it’s used for.
Can someone explain what the Python egg cache is?
Also, can you explain why/how it is different to the site-packages directory Python uses to store eggs (as I understand it)?
From my investigations it turns out that some eggs are packaged as zip files, and are saved as such in Python’s
site-packagesdirectory.These zipped eggs need to be unzipped before they can be executed, so are expanded into the
PYTHON_EGG_CACHEdirectory 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:
.python-eggsdirectory in the user’s home directory and make it writable for the user./tmp/python-eggs) and set the environment variablePYTHON_EGG_CACHEto this directory.-Zswitch when usingeasy_installto unzip the package when installing.