无法使用上帝启动 python 进程

Unable to start python process using 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 class,在 my_app.tac 文件中我正在执行

from node import NodeQS

当我尝试使用

启动应用程序时
god -c start_my_app.god -D

我在我的应用程序日志中看到以下错误

exceptions.ImportError: No module named node

我已经将 /home/joes/my_app 添加到 PYTHONPATH,但是当我 运行 使用 god 的 twistd 命令时,我仍然看到这个错误。

The above twistd command works if i run it directly

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

当您 运行 具有完整路径的 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