簡體   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