我想用Jython运行Python脚本。
结果显示正确,但同时有一条警告消息,"sys- package -mgr*:can't create package cache dir“
我该如何解决这个问题呢?
提前谢谢~
发布于 2013-07-20 11:54:51
1)通过更改权限以允许写入错误消息中的目录。
2)通过设置python.cachedir.skip = true
你可以读到这个:
http://www.jython.org/jythonbook/en/1.0/ModulesPackages.html#module-search-path-compilation-and-loading
以获得更深入的见解。
发布于 2014-02-10 20:25:15
您可以通过在启动jython时设置"python.cachedir“选项,将缓存目录的位置更改为您有读写权限的位置,例如:
jython -Dpython.cachedir=*your cachedir directory here*或者:
java -jar my_standalone_jython.jar -Dpython.cachedir=*your cachedir directory here*您可以在此处阅读有关python.cachedir选项的信息:http://www.jython.org/archive/21/docs/registry.html
发布于 2014-02-01 00:27:15
无可否认,将目录设置为全局可写会使问题“消失”,然而,它引入了一个巨大的安全漏洞。任何人都可以将代码引入现在的可写目录,这些目录将在用户的jpython环境中执行。
将cachedir设置为skip可能会导致性能下降(为什么要实现缓存方案,而不是为了提高性能)。
取而代之的是我做了以下事情:
我创建了一个新组(在我的例子中是eclipse,但它也可以是jpython)。我将jpython的用户添加到该组中。
$ sudo groupadd eclipse然后,我将我的eclipse插件文件夹及其子文件夹的组更改为'eclipse‘。
/opt/eclipse/plugins $ sudo chgrp -R eclipse *然后,我更改了组权限,如下所示
/opt/eclipse/plugins $ sudo chmod -R g+w *
/opt/eclipse/plugins $ find * -type d -print | sudo xargs chmod g+s这增加了组可写,并递归地设置所有目录上的S_GID位。这最后一位导致创建的新目录具有与其父目录相同的组id。
最后一步是将eclipse用户的umask设置为007。
$ sudo vi /etc/login.def将UMASK更改为007 (从022)。UMASK=007
https://stackoverflow.com/questions/17758458
复制相似问题