PYTHONPATH não configurado antes de rc.local executado

2

Eu tenho um script Python que quero ser iniciado na inicialização. Colocar um comando em rc.local tenta executar o script, mas falha porque o script não consegue encontrar as bibliotecas das quais ele depende. Essas bibliotecas estão em um local não padrão. Normalmente, isso não é um problema porque especifico esses locais configurando a variável de ambiente PYTHONPATH em / etc / environment.

Eu tentei especificar PYTHONPATH em rc.local (uma solução não ideal, porque eu gostaria de especificá-lo em todo o sistema para todos os usuários em um único lugar, ou seja, / etc / environment) que parcialmente cura o problema. Mas ainda está falhando em uma biblioteca (Quick2Wire) onde o arquivo incluído está em uma subdiretória. PYTHONPATH inclui o caminho:

/usr/local/lib/cr/python/quick2wire-python-api/src

O arquivo de inclusão atual é:

/usr/local/lib/cr/python/quick2wire-python-api/src/quick2wire/i2c.py

Normalmente, o Python não tem nenhum problema, sabendo que precisa procurar no subdiretório quick2wire.

Eu acho que posso configurar uma versão especial do PYTHONPATH em rc.local só para fazer este script rodar e então ter a versão em / etc / environment para substituí-lo. Só queria saber se há uma solução mais elegante.

    
por Dick Kennedy 05.11.2012 / 16:23

1 resposta

1

export PYTHONPATH=</blah/blah> ; python /usr/local/lib/cr/python/quick2wire-python-api/src/quick2wire/i2c.py 

acima deve fazer o truque.

Além disso, você pode criar um script (.sh) com o conteúdo acima e chamar o script de rc.local;)

    
por gnuyoga 05.11.2012 / 18:48