次のスーパーバイザー構成があります
[program:do_thing]
command = python -u stuff/do_thing.py
directory = /home/ubuntu/code/processing
environment = PYTHONPATH="$PYTHONPATH:/home/ubuntu/code/utils/"
stdout_logfile = /mnt/log/do_thing.log
redirect_stderr = true
問題は/home/ubuntu/code/utils/
、sys.path に従って PYTHONPATH が含まれていないことです (そして、そこからモジュールをインポートできません)。Sys.path は、この追加のパスを除いて、すべての適切なパスを示しています。私自身と root ユーザーの両方の .bashrc に追加しようとしましたが、スーパーバイザーによって検出されません。
スーパーバイザーが環境変数を適切に更新しないために何が間違っていますか? さらに情報が必要ですか? ありがとう!
私も気づいたこと:ubuntuユーザーでは、sys.pathは
['', '/home/ubuntu/code/processing', '/home/ubuntu/code/utils', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/pymodules/python2.7']
スーパーバイザー内で呼び出されると、次のようになります。
['/home/ubuntu/code/processing/stuff', '/', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/pymodules/python2.7']
スーパーバイザーの sys.path に「/」エントリがあることに注意してください。それはどこから来ましたか?