Fedora
Python導入適用於root,但不適用於特定使用者
我正在嘗試通過使用者帳戶執行 python 腳本,稱之為 myuser。我希望能夠執行 dropbox.py 腳本,而無需登錄或進入 root。當我以 root 身份登錄或 su 進入 root 時,該程序執行良好,但我想找到一種方法,不必在每次啟動時都 su 到 root 並執行它。
當我以 myuser 身份執行它時,出現以下錯誤:
[myuser@localhost Utilities]$ python dropbox.py start Starting Dropbox... The Dropbox daemon is not installed! Run "dropbox start -i" to install the daemon
因此,我按照建議使用 -i 選項執行它並獲得以下資訊:
[myuser@localhost Utilities]$ python dropbox.py start -i Starting Dropbox...Traceback (most recent call last): File "dropbox.py", line 1404, in start download() File "dropbox.py", line 280, in download import pygtk ImportError: No module named pygtk
我用它執行它,
strace
我得到一行又一行的大致如下:open("/home/myuser/Downloads/pygtk.so", O_RDONLY) = -1 ENOENT (No such file or directory)
任一配置文件的 .bashrc、.bash_profiles、.bash_history 文件沒有區別。我還檢查了 .config 文件夾中的差異,但沒有發現任何差異。
同樣,最奇怪的是它以 root 身份執行良好,但以 myuser 身份登錄時卻無法執行。root 在難以捉摸的 pygtk 包中導入完全沒有問題。
是否需要在某處設置某種 python 權限或配置以允許其他使用者導入包?myuser 帳戶中是否缺少某種配置設置?
謝謝!
$ sudo dnf install pygtk2.x86_64
為我工作。
似乎有很多可能性。首先,您可以嘗試將“myuser”設置為某個管理組(例如 wheel 組)的成員,或者您可以在 sudoers 文件中賦予它所需的權限。我認為更適合首先安裝提供 pygtk 模組的所需 python 包的第二種方式,它應該是這樣的:
#sudo apt-get install python-gtk2-dev
然後再次執行程序,這次應該沒有模組錯誤。
或者如果您確定軟體包已經安裝,那麼您應該檢查 python 路徑並確保它對 myuser 具有適當的權限。函式 import 在您的 PYTHONPATH 環境中查找文件。變數和您的本地目錄。