主管 - 运行python脚本PYTHONPATH问题

时间:2011-10-28 14:01:52

标签: supervisord

我正在使用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

在通过终端运行时脚本是否有效,但在通过主管运行时是否有原因?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:28)

PYTHONPATH定义添加到supervisord配置文件中的environment指令。它应该在[program:twitter_track]部分下面,如下:

environment=PYTHONPATH=/home/ubuntu/lib/

这将确保你的python进程在supervisord启动时看到正确的PYTHONPATH

答案 1 :(得分:0)

将PYTHONPATH定义添加到环境中:

findViewByID