2013-09-27 30 views
4

我有一個在Flask上開發的python應用程序。一切工作正常離線,我也嘗試在CherryPy上成功部署。現在,我試圖在www.pythonanywhere.com上部署相同的功能。如何在pythonanywhere.com上部署CherryPy

下面是我創建了一個pythonanywhere.com「手動配置」應用程序中的deploy.py我使用CherryPy的上

from cherrypy import wsgiserver 
from appname import app 

def initiate(): 
    app_list = wsgiserver.WSGIPathInfoDispatcher({'/appname': app}) 
    server = wsgiserver.CherryPyWSGIServer(('http://username.pythonanywhere.com/'), app_list) 
    try: 
     server.start() 
    except KeyboardInterrupt: 
     server.stop() 

print "Server initiated..." 
initiate() 
print "Ended" 

部署瓶應用。 這裏的配置文件(username_pythonanywhere_com_wsgi.py):

import sys 

path = '/home/username/appname' 
if path not in sys.path: 
    sys.path.append(path) 

import deploy 

deploy.initiate() 

現在,我敢肯定,它「幾乎工作」,因爲在服務器日誌,我可以看到我的「服務器啓動...」消息。

2013-09-27 09:57:16 +0000 username.pythonanywhere.com - *** Operational MODE: single process *** 
Server initiated... 

現在的問題,當我嘗試查看我的應用程序username.pyhtonanywhere.com/about,超時。 我相信這是由於在啓動CherryPy服務器時給出的錯誤端口(在deploy.py中)造成的。

任何人都可以請告訴我如何正確啓動CherryPy服務器?

+2

如果您正在將WSGI配置爲deplyoing,那麼您不要運行WSGIServer。您只需公開一個可調用的WSGI。 –

回答

2

Joe Doherty是對的。你想要更多的東西像這樣在你WS​​GI文件:

import sys 
sys.path = [ <path to your web app> ] + sys.path 
from cherrypy._cpwsgi import CPWSGIApp 
from cherrypy._cptree import Application 

from <your_web_app> import <your web app class> 
config_path = '<path to your cherrypy config>' 
application = CPWSGIApp(
    Application(<your web app class>(), '', config = config_path) 

我堅持認爲,應根據在<>是你的特定應用程序的一切。