我刚刚开始使用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 进程或重新加载模块:”(从这里)。
有谁知道这样做的正确方法?