我有一个简单的脚本,它使用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发布于 2018-05-13 11:57:40
默认情况下,sudo在不同的环境中运行命令。您可以要求sudo使用-E交换机来保护环境。
sudo -E python myScriptName.py它伴随着自身的安全风险。所以要小心
发布于 2018-05-13 11:50:47
您需要检查signalr的安装位置。sudo在root可用的环境中运行程序,如果signalr不是全局安装的,它将不会被选中。尝试'sudo pip冻结‘,看看什么是可用的根环境。
发布于 2022-09-21 10:13:29
另一个简单的解决方案可以是通过正常安装之前安装的sudo -even安装所需的软件包,而不是试图匹配路径:
sudo pip3 install <your-required-package-name>
之后,您可以通过sudo执行脚本。
https://stackoverflow.com/questions/50315645
复制相似问题