我使用上帝(godrb.com)来监控基于扭曲框架的应用程序流程。在我的神文件(start_my_app.god)中我有
God.watch do |w|
w.name='my_app'
w.start='twistd -y /home/joes/my_app.tac --pidfile /home/joes/my_app.pid'
w.log='/home/joes/my_app.log'
w.keepalive
end
在我的应用程序目录中是一个名为node.py的文件,其中包含NodeQS类,并在my_app.tac
文件中执行
from node import NodeQS
当我尝试使用
启动应用程序时god -c start_my_app.god -D
我在应用程序日志中看到以下错误
exceptions.ImportError:没有名为node
的模块
我已将/ home / joes / my_app添加到PYTHONPATH,但是当我使用god运行twistd命令时仍然会看到此错误。
如果我直接运行
,则上述twistd命令有效
为什么尝试从上帝运行相同的命令给我一个导入错误?
答案 0 :(得分:1)
当您运行带有完整路径的Python脚本时,PATHONPATH
将设置为当前工作目录。然后将此路径用作导入包和模块的基础。
要使PYTHONPATH
反映您的项目目录,请先cd
。您可以将命令添加到.start
值:
God.watch do |w|
w.name='my_app'
w.start='cd /home/joes; twistd -y /home/joes/my_app.tac --pidfile /home/joes/my_app.pid'
w.log='/home/joes/my_app.log'
w.keepalive
end