我有一个简单的脚本,它使用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
答案 0 :(得分:1)
您需要检查信号器的安装位置。 sudo在root可用的环境中运行程序,如果没有全局安装signalr,它将不会被选中。尝试'sudo pip freeze'来查看root环境中的可用内容。
答案 1 :(得分:1)
默认情况下,sudo在不同的环境中运行命令。
您可以通过-E
开关请求sudo保护环境。
sudo -E python myScriptName.py
它带来了自身的安全风险。所以要小心