Skip to content Skip to sidebar Skip to footer

"sys-package-mgr*: Can't Create Package Cache Dir" When Run Python Script With Jython

I want to run Python script with Jython. the result show correctly, but at the same time there is an warning message, 'sys-package-mgr*: can't create package cache dir' How could

Solution 1:

1) By changing permissions to allow writing to the directory in the error message.

2) By setting python.cachedir.skip = true

You can read this:

http://www.jython.org/jythonbook/en/1.0/ModulesPackages.html#module-search-path-compilation-and-loading

for further insights.

Solution 2:

You can change the location of the cache directory to a place that you have read & write access to by setting the "python.cachedir" option when starting jython, e.g.:

jython -Dpython.cachedir=*your cachedir directory here*

or:

java -jar my_standalone_jython.jar -Dpython.cachedir=*your cachedir directory here*

You can read about the python.cachedir option here: http://www.jython.org/archive/21/docs/registry.html

Solution 3:

Making directories world writable admittedly makes the problem "go away", however, it introduces a huge security hole. Anyone could introduce code to the now world writable directory that would be executed in the users' jpython environment.

Setting the cachedir to skip would presumably result in a performance drop (why implement a caching scheme other than to improve performace).

Instead I did the following:

I created a new group (in my case eclipse, but it could have been jpython). I added the users of jpython to that group.

$ sudo groupadd eclipse

I then changed the group of my eclipse plugins folder and its children to 'eclipse'.

/opt/eclipse/plugins $ sudo chgrp -R eclipse *

Then I changed the group permissions as follows

/opt/eclipse/plugins $ sudo chmod -R g+w *
/opt/eclipse/plugins $ find * -type d -print | sudo xargs chmod g+s

This added group writable, and set the S_GID bit on all directories recursively. This last bit causes new directories created to have the same group id as their parent.

The final touch was change the umask for the eclipse users set to 007.

$ sudo vi /etc/login.def

change UMASK to 007 (from 022). UMASK=007

Solution 4:

The easiest fix I found so far was to do:

$ sudo chmod -R 777 /opt/jython/cachedir

Post a Comment for ""sys-package-mgr*: Can't Create Package Cache Dir" When Run Python Script With Jython"