繁体   English   中英

无法使用 sudo 运行 Python 脚本

[英]Cannot run Python script using 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

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

sudo -E python myScriptName.py

它带有自己的安全风险。 所以要小心

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

另一个简单的解决方案是通过sudo安装所需的包,而不是尝试匹配路径:

sudo pip3 install <your-required-package-name>

之后,您可以通过sudo执行脚本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM