我剛開始接觸twisted.web,和我有麻煩導入Python模塊爲.rpy
腳本。與twisted.web服務器導入問題
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模塊中定義Resource子類通常是一個更好的想法。爲了使模塊中的變化可見,您必須重新啓動Python進程或重新加載該模塊:「(來自here)。
有誰知道正確的方式做到這一點?
這是一個簡單的問題一個很好的答案。我想這整個時間我都不太會意識到「PYTHONPATH」。 – 2010-05-15 07:25:42
而不是更改環境變量,我有我的.tac文件設置爲在創建應用程序實例之前將應用程序目錄添加到sys.path。以這種方式設置沒有本地配置的測試副本會更方便。 – olsner 2011-02-08 16:43:53
但您的來源**的位置是**本地配置! – 2011-02-09 00:44:14