【问题标题】:Unable to start python process using God无法使用God启动python进程
【发布时间】:2016-03-09 09:53:55
【问题描述】:

我正在使用上帝 (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: No module named node

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

如果我直接运行,上面的 twistd 命令可以工作

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

【问题讨论】:

  • 这应该是由错误的PYTHONPATH 引起的。解决这个问题的最简单方法是首先更改工作目录。尝试在实际命令前添加cd /home/joes;
  • 非常感谢克劳斯 D. !! :)。按照你的建议添加 cd 修复它。请将其添加为答案,以便我可以将其标记为已接受:)。

标签: python twisted god


【解决方案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

【讨论】:

    猜你喜欢
    • 2018-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 2018-10-24
    相关资源
    最近更新 更多