无法使用sudo运行Python脚本

时间:2018-05-13 11:32:06

标签: python pip 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

2 个答案:

答案 0 :(得分:1)

您需要检查信号器的安装位置。 sudo在root可用的环境中运行程序,如果没有全局安装signalr,它将不会被选中。尝试'sudo pip freeze'来查看root环境中的可用内容。

答案 1 :(得分:1)

默认情况下,sudo在不同的环境中运行命令。 您可以通过-E开关请求sudo保护环境。

sudo -E python myScriptName.py

它带来了自身的安全风险。所以要小心