2 回答

TA貢獻1765條經驗 獲得超5個贊
您的問題是用戶權限問題。您應該以擁有您的 python 環境的用戶身份運行 Apache 服務器,或者允許運行服務器的用戶在您的 python 環境中執行權限。
這個答案應該可以幫助您找出服務器的最佳設置。
另請閱讀有關Apache VirtualHosts 配置的信息

TA貢獻1780條經驗 獲得超4個贊
我想通了。希望這將幫助任何有類似問題的人。當您從 Apache 服務器上提供的 PHP 腳本執行 Python 或 shell 腳本時,該腳本將以用戶身份運行,默認情況下為 www-data。
通過運行命令 sudo -u www-data(以 www-data 用戶運行以下命令)python myscript.py,我得到一個回溯錯誤,提示找不到 3rd 方模塊。發生的情況是,默認情況下 pip(python 包管理器)在用戶級別安裝其包。這對大多數應用程序來說都很好,但在這種情況下會導致問題,因為 www-data 用戶可以理解地找不到已安裝的包,并且腳本崩潰了。從 PHP 腳本的角度來看,這變得特別棘手,因為它不理解這一點并且輸出只是 null。
我知道不推薦使用 sudo 安裝 pip 包,因為它在某些情況下會導致沖突問題;但是,這是解決大多數軟件包問題的最簡單方法。對于這不起作用的情況,請查看 infinigrove 的答案: 如何安裝 Python 包以供所有用戶全局使用(包括 www-data)
最后,從我所見,為了以 www-data 用戶身份安裝 pip 包(sudo -u www-data pip install package),必須授予 www-data sudo 權限,這絕對不是推薦的解決方案.
- 2 回答
- 0 關注
- 208 瀏覽
添加回答
舉報