【发布时间】:2009-11-27 08:45:17
【问题描述】:
我有一个用 Twisted 编写的简单 Web 服务器,我正在尝试使用 twistd 来启动它。 reactor.run() 一切正常,但是当我使用 twistd -y(作为 root)时,我的直接子目录中的包都找不到。我以 root 身份运行 twistd,因为服务器在端口 80 上运行。manpage for twistd 说:
请注意,如果 twistd 以 root 身份运行,则不会在工作目录中搜索 Python 模块。
这很好,但为什么呢?我该如何解决?即使我明确设置了该选项,twistd 似乎也忽略了--rundir .。
【问题讨论】:
-
您是否尝试过设置 PYTHONPATH 变量? docs.python.org/using/cmdline.html#envvar-PYTHONPATH
-
好吧,我可以像这样手动调整搜索路径: import sys sys.path.insert(0, ".") 但这很蹩脚。 “。”应该始终在搜索路径中。我想我的问题是,没有人使用 twistd 在知名端口上运行服务吗?
-
不要依赖 rundir。见twistedmatrix.com/trac/ticket/2572