我正在使用supervisor来运行python脚本:
[program:twitter_track]
autorestart = true
numprocs = 1
autostart = false
redirect_stderr = True
stopwaitsecs = 1
startsecs = 1
priority = 99
command = python /home/ubuntu/services/twitter.py track
startretries = 3
stdout_logfile = /home/ubuntu/logs/twitter_track.log
但是这个过程无法启动。以下是错误日志所说的内容:
Traceback (most recent call last):
File "/home/ubuntu/services/twitter.py", line 6, in <module>
from mymodule.twitter.stream import TwitterStream
ImportError: No module named mymodule.twitter.stream
Traceback (most recent call last):
File "/home/ubuntu/services/twitter.py", line 6, in <module>
似乎获取mymodule,但如果我自己运行twitter.py,一切正常,它只会在我通过主管运行时抛出此错误。
我将mymodule添加到〜/ .profile文件中的PYTHONPATH中,如下所示:
export PYTHONPATH=$PYTHONPATH:/home/ubuntu/lib
在通过终端运行时脚本是否有效,但在通过主管运行时是否有原因?任何帮助将不胜感激。
答案 0 :(得分:28)
将PYTHONPATH
定义添加到supervisord配置文件中的environment
指令。它应该在[program:twitter_track]
部分下面,如下:
environment=PYTHONPATH=/home/ubuntu/lib/
这将确保你的python进程在supervisord启动时看到正确的PYTHONPATH
。
答案 1 :(得分:0)
将PYTHONPATH定义添加到环境中:
findViewByID