无法使用sudo运行Python脚本
问题内容:
我有一个简单的脚本,它使用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在不同的环境中运行命令。您可以要求sudo使用-E
switch保护环境。
sudo -E python myScriptName.py
它带有自身的安全风险。所以要小心