[英]“sys-package-mgr*: can't create package cache dir” when run python script with Jython
我想用Jython運行Python腳本。
結果顯示正確,但同時有一條警告消息,“sys-package-mgr *:無法創建包緩存目錄”
我怎么能解決這個問題?
提前謝謝~~~
1)通過更改權限以允許寫入錯誤消息中的目錄。
2)通過設置python.cachedir.skip = true
你可以讀到這個:
進一步的見解。
您可以通過在啟動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
讓目錄成為可寫的公認使問題“消失”,然而,它引入了一個巨大的安全漏洞。 任何人都可以將代碼引入到將在用戶的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用戶設置為007的umask更改。
$ sudo vi /etc/login.def
將UMASK更改為007(從022開始)。 UMASK = 007
到目前為止我發現的最簡單的修復方法是:
$ sudo chmod -R 777 /opt/jython/cachedir
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.