首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用Jython运行python脚本时,出现"sys- package -mgr*:can't create package cache dir“

当使用Jython运行python脚本时,出现"sys- package -mgr*:can't create package cache dir“
EN

Stack Overflow用户
提问于 2013-07-20 11:48:47
回答 4查看 8.4K关注 0票数 7

我想用Jython运行Python脚本。

结果显示正确,但同时有一条警告消息,"sys- package -mgr*:can't create package cache dir“

我该如何解决这个问题呢?

提前谢谢~

EN

回答 4

Stack Overflow用户

发布于 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

以获得更深入的见解。

票数 5
EN

Stack Overflow用户

发布于 2014-02-10 20:25:15

您可以通过在启动jython时设置"python.cachedir“选项,将缓存目录的位置更改为您有读写权限的位置,例如:

代码语言:javascript
复制
jython -Dpython.cachedir=*your cachedir directory here*

或者:

代码语言:javascript
复制
java -jar my_standalone_jython.jar -Dpython.cachedir=*your cachedir directory here*

您可以在此处阅读有关python.cachedir选项的信息:http://www.jython.org/archive/21/docs/registry.html

票数 5
EN

Stack Overflow用户

发布于 2014-02-01 00:27:15

无可否认,将目录设置为全局可写会使问题“消失”,然而,它引入了一个巨大的安全漏洞。任何人都可以将代码引入现在的可写目录,这些目录将在用户的jpython环境中执行。

将cachedir设置为skip可能会导致性能下降(为什么要实现缓存方案,而不是为了提高性能)。

取而代之的是我做了以下事情:

我创建了一个新组(在我的例子中是eclipse,但它也可以是jpython)。我将jpython的用户添加到该组中。

代码语言:javascript
复制
$ sudo groupadd eclipse

然后,我将我的eclipse插件文件夹及其子文件夹的组更改为'eclipse‘。

代码语言:javascript
复制
/opt/eclipse/plugins $ sudo chgrp -R eclipse *

然后,我更改了组权限,如下所示

代码语言:javascript
复制
/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。

代码语言:javascript
复制
$ sudo vi /etc/login.def

将UMASK更改为007 (从022)。UMASK=007

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17758458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档