无法使用上帝启动python进程

时间:2016-03-09 09:53:55

标签: python twisted god

我使用上帝(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命令有效

为什么尝试从上帝运行相同的命令给我一个导入错误?

1 个答案:

答案 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