1

次のスーパーバイザー構成があります

[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 に「/」エントリがあることに注意してください。それはどこから来ましたか?

4

2 に答える 2

1

スーパーバイザーからプロセスを完全に削除し、再度追加すると修正されました(どうやら、再読み取りによって変更が適切にプルされなかったのですか?)

より良い説明があれば、投稿してください。

于 2013-02-13T06:02:18.107 に答える