[英]Cannot run Python script using sudo
我有一個簡單的腳本,它使用signalr-client-py作為外部模塊。
from requests import Session
from signalr import Connection
import threading
當我嘗試使用sudo python myScriptName.py
運行我的腳本時,我收到一個錯誤:
Traceback (most recent call last):
File "buttonEventDetectSample.py", line 3, in <module>
from signalrManager import *
File "/home/pi/Desktop/GitRepo/DiatAssign/Main/signalrManager.py", line 2, in <module>
from signalr import Connection
ImportError: No module named signalr
如果我只輸入python myScriptName.py
運行我的腳本,它工作得非常好,但我需要在前面有sudo ,因為稍后在我的其他腳本(使用這個腳本)中我在文件系統上執行寫操作。
我對 Python 很陌生,這就是為什么我需要知道如何處理這種情況。 如果我鍵入pydoc modules
,我會得到一個列表,其中包含:
signalr
signalrManager
如果我輸入pip freeze
我可以看到列出:
signalr-client==0.0.7
默認情況下 sudo 在不同的環境中運行命令。 您可以使用-E
開關要求 sudo 保護環境。
sudo -E python myScriptName.py
它帶有自己的安全風險。 所以要小心
您需要檢查信號器的安裝位置。 sudo 在 root 可用的環境中運行程序,如果沒有全局安裝 signalr,它將不會被選中。 嘗試“sudo pip freeze”以查看根環境中可用的內容。
另一個簡單的解決方案是通過sudo
安裝所需的包,而不是嘗試匹配路徑:
sudo pip3 install <your-required-package-name>
之后,您可以通過sudo
執行腳本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.