5

We are using trac. In our setup we have a problem that is solved in repository. So I got the fixed file commit_update.py from the repository and I need to place it into Trac-0.12-py2.6.egg.

As egg is just a ziped filed I just unziped it, changed the file and ziped again. After restarting trac, I've got a an error message:

ExtractionError: Can't extract file(s) to egg cache

The following error occurred while trying to extract file(s) to the Python egg 
cache:

    [Errno 20] Not a directory

The Python egg cache directory is currently set to: 

    /var/trac/plugin-cache

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.

I don't quite understand why I got this error, because I'm running trac instance under www-data and it is the owner of the plugin-cache.

Will appreciate any ideas.

Manoj Govindan
  • 72,339
  • 21
  • 134
  • 141
bessarabov
  • 11,151
  • 10
  • 34
  • 59

2 Answers2

7

Just build a new egg (with python setup.py bdist_egg), reinstall the egg and restart your trac instance.

knitti
  • 6,817
  • 31
  • 42
  • $ python setup.py bdist-egg python: can't open file 'setup.py': [Errno 2] No such file or directory – bessarabov Sep 17 '10 at 14:46
  • I have only egg file, how can i rebuild it? – bessarabov Sep 17 '10 at 14:46
  • 1
    Where did you get the egg? Did you install trac with setuptools (e.g. "easy_install trac")? If yes: try reinstalling with `easy_install -m trac`, then delete the egg file, then `easy_install -Z trac`, which installs not as a zipped egg, but as a directory. Then you can edit the source. – knitti Sep 17 '10 at 21:19
  • 1
    Thank you. The problem was that it wasn't me who have installed that egg. I've solved my problem by downloading trac source code, changing the file and creating the egg file with the command "python ./setup.py install". – bessarabov Sep 20 '10 at 08:28
  • Isn't it spelled `bdist_egg`? – usta Jan 10 '13 at 23:27
3

I just unzip the egg file using

sudo unzip django_tastypie-0.9.11-py2.7.egg

This created a new folder in same path called tastypie, then, I changed files into it, and after that, I removed the egg file and keep using only the new folder.

  • Hm... I don't like the idea of leaving things differently to how you find them. I'm using this to edit the files, then creating a new `.egg` [by running `setup.py` again](http://peak.telecommunity.com/DevCenter/PythonEggs#building-eggs) – Louis Maddox Jul 10 '14 at 10:02