Importações Python trabalhando para raiz, mas não para usuário específico

0

Estou tentando executar um script python por meio de uma conta de usuário, chamando-o de myuser. Eu quero ser capaz de executar o script dropbox.py sem fazer login ou su'ing em root. O programa funciona perfeitamente quando eu estou logado como root, ou su'd em root, mas eu quero encontrar uma maneira de não precisar su para root e então executá-lo toda vez que eu iniciar.

Quando eu o executo como myuser, recebo o seguinte erro:

[myuser@localhost Utilities]$ python dropbox.py start
Starting Dropbox...
The Dropbox daemon is not installed!
Run "dropbox start -i" to install the daemon

Então, eu corro com a opção -i, como recomendado, e recebo o seguinte:

[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

Eu corri com strace e recebo linha após linha que parece mais ou menos assim:

open("/home/myuser/Downloads/pygtk.so", O_RDONLY) = -1 ENOENT (No such file or directory)

Não há diferenças nos arquivos .bashrc, .bash_profiles, .bash_history de nenhum perfil. Também verifiquei a pasta .config em busca de diferenças e não encontrei nenhuma.

Novamente, o mais estranho é que ele funciona bem como root, mas não funciona quando logado como myuser. O root não está tendo problemas em importar o pacote pygtk.

Existe algum tipo de permissão (s) python ou configuração que eu preciso definir em algum lugar para permitir que outros usuários importem pacotes? Existe uma configuração de algum tipo que estou faltando na conta myuser?

Obrigado!

    
por ljhennessy 25.12.2015 / 06:41

3 respostas

1

$ sudo dnf install pygtk2.x86_64

Trabalhei para mim.

    
por 18.04.2017 / 21:14
0

parece haver muitas possibilidades. Primeiro, você pode tentar fazer o "myuser" como membro de algum grupo administrativo, como wheel group, ou dar os direitos necessários no arquivo sudoers. a segunda maneira que eu acho que é mais adequado para instalar primeiro o pacote python necessário que fornece o módulo pygtk, deve ser algo assim:

     #sudo apt-get install python-gtk2-dev

e, em seguida, executar o programa novamente, não deve haver erro de módulo desta vez.

ou se você tiver certeza de que o pacote já está instalado, verifique o caminho do python e verifique se ele está disponível com permissões adequadas para myuser. A função import procura por arquivos no seu env PYTHONPATH. variável e seu diretório local.

    
por 25.12.2015 / 10:17
0

Provavelmente um problema de permissão em algum lugar. Verifique se o pacote está instalado corretamente, por exemplo,

yum reinstall 《offending file》

deve atualizar / corrigir a instalação.

Outras possibilidades são que as variáveis de ambiente en do Python não estão configuradas corretamente, ou que seu usuário tem alguns pacotes localmente (somente para a conta) instalados, e aqueles que são obsoletos (antigos, não funcionam mais) ou simples .     digite o código aqui

    
por 25.12.2015 / 15:09