【发布时间】:2010-05-14 22:54:22
【问题描述】:
我刚刚开始使用 twisted.web,但在将 Python 模块导入 .rpy 脚本时遇到了问题。
在C:\py\twisted\mysite.py,我有这个:
from twisted.web.resource import Resource
from twisted.web import server
class MySite(Resource):
def render_GET(self, request):
request.write("<!DOCTYPE html>")
request.write("<html><head>")
request.write("<title>Twisted Driven Site</title>")
request.write("</head><body>")
request.write("<h1>Twisted Driven Website</h1>")
request.write("<p>Prepath: <pre>{0}</pre></p>".format(request.prepath))
request.write("</body></html>")
request.finish()
return server.NOT_DONE_YET
在C:\py\twisted\index.rpy,我有这个:
import mysite
reload(mysite)
resource = mysite.MySite()
我在命令提示符下运行twistd -n web --port 8888 --path C:\py\twisted 并且服务器成功启动。但是当我请求localhost:8888 时,我得到了一个源自 ImportError 的(巨大的)堆栈跟踪:
<type 'exceptions.ImportError'>: No module named mysite
我可以从解释器导入模块,如果我只是将index.rpy 作为 python 脚本执行,我不会收到导入错误。关于这个主题的文档有点模糊,它只是说“但是,在 Python 模块中定义资源子类通常是一个更好的主意。为了使模块中的更改可见,您必须重新启动 Python 进程或重新加载模块:”(来自here)。
有谁知道这样做的正确方法吗?
【问题讨论】:
标签: python twisted twisted.web