4

Flaskで開発されたpythonアプリがあります。すべてがオフラインで正常に動作し、CherryPy へのデプロイも成功しました。今、私は www.pythonanywhere.com に同じものを展開しようとしています。

これが、Flask アプリを CherryPy にデプロイするために使用する deploy.py です。

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"

pythonanywhere.com で「手動構成」アプリを作成しました。構成ファイル (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サーバーを適切に開始する方法を誰か教えてください。

4

1 に答える 1

3

ジョー・ドハティは正しい。wsgi ファイルに次のようなものが必要です。

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)

あなたの特定のアプリに基づいている必要があるすべてのものを<>で貼り付けました。

于 2013-09-30T15:23:01.467 に答える