无法使用sudo运行python脚本

wsxa1bj1  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(479)

我有一个简单的脚本,它使用signarclientpy作为外部模块。

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
eoigrqb6

eoigrqb61#

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

sudo -E python myScriptName.py

它本身也有安全风险。所以要小心

uyto3xhc

uyto3xhc2#

你需要检查信号器安装在哪里。sudo在root可用的环境中运行该程序,如果signalr没有全局安装,它将不会被接收。尝试“sudo pip freeze”查看根环境中的可用内容。

相关问题