사용자 계정을 통해 Python 스크립트를 실행하려고 합니다. myuser라고 부르겠습니다. 로그인하거나 루트를 사용하지 않고도 dropbox.py 스크립트를 실행할 수 있기를 원합니다. 프로그램은 루트로 로그인하거나 루트로 로그인하면 완벽하게 실행됩니다. 하지만 먼저 루트로 로그인한 다음 부팅할 때마다 실행할 필요가 없는 방법을 찾고 싶습니다.
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 폴더에서 차이점을 확인했지만 아무것도 찾지 못했습니다.
다시 말하지만, 가장 이상한 점은 루트로는 잘 작동하지만 myuser로 로그인하면 작동하지 않는다는 것입니다. 루트는 찾기 어려운 pygtk 패키지를 가져오는 데 아무런 문제가 없습니다.
다른 사용자가 패키지를 가져올 수 있도록 어딘가에 일종의 Python 권한이나 구성을 설정해야 합니까? myuser 계정에 일부 구성 설정이 누락되어 있습니까?
감사해요!
답변1
$ sudo dnf install pygtk2.x86_64
나를 위해 작동합니다.
답변2
많은 가능성이 있는 것 같습니다. 먼저 "myuser"를 일부 관리 그룹(예: 휠 그룹)의 구성원으로 만들거나 sudoers 파일에서 필요한 권한을 부여할 수 있습니다. 두 번째 방법은 먼저 pygtk 모듈을 제공하는 필수 Python 패키지를 설치하는 것이 더 낫다고 생각합니다. 다음과 같아야 합니다.
#sudo apt-get install python-gtk2-dev
그런 다음 프로그램을 다시 실행하십시오. 이번에는 모듈 오류가 없어야 합니다.
또는 패키지가 설치되어 있다고 확신하는 경우 Python 경로를 확인하고 myuser가 해당 패키지를 사용할 수 있고 적절한 권한이 있는지 확인해야 합니다. 가져오기 기능은 PYTHONPATH 환경에서 파일을 찾습니다. 변수와 로컬 디렉터리.
답변3
어딘가에 권한 문제가 있을 수 있습니다. 패키지가 올바르게 설치되었는지 확인하세요.
yum reinstall 《offending file》
설치를 새로 고치거나 복구해야 합니다.
다른 가능성은 Python의 en 환경 변수가 올바르게 설정되지 않았거나 사용자가 오래되었거나(오래되었거나 더 이상 작동하지 않음) 완전히 손상된 일부 로컬(해당 계정에만 해당) 패키지를 설치했기 때문일 수 있습니다. 여기에 코드를 입력하세요