Adicionando comandos em um script de shell para adicionar um caminho do módulo python

0

Eu quero modificar um script de shell linux usado para instalar um módulo python (setup.sh) para adicionar a pasta a uma variável de ambiente. Isso é necessário para que eu possa executar o módulo python de um terminal. por exemplo. python -m newtool.py

Após algumas leituras, o método que implementei está no arquivo setup.sh para chamar um script python (addmoduletopath.py) e acrescentar a nova pasta do módulo python à variável env do PYTHONPATH (usando sys.path.append).

Isto parece adicionar o módulo python à variável env PYTHONPATH. Após a configuração quando eu corro "python -m newtool.py" python encontra o caminho do módulo. No entanto, quando eu executar o mesmo comando com o sudo (ou seja, sudo python -m newtool.py) recebo a mensagem "nenhum módulo chamado newtool"

Alguma idéia?

Entre. Aqui está o meu script addmoduletopath.py:

#!/usr/bin/env python
import sys

newtool="/opt/newtool"
if (newtool not in sys.path):
        sys.path.append(newtool)
    
por Michael 15.03.2015 / 15:31

1 resposta

1

A razão pela qual isso ocorre é quando você executa no modo sudo suas variáveis de env atuais não são retidas. Se você executar seu comando sudo com a opção -E, ele passará sua variável de ambiente.

Faça uma leitura do man sudo para mais detalhes

    
por 15.03.2015 / 15:34