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;)
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.
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;)