/ / Wie man CherryPy auf pythonanywhere.com einsetzt - python, flask, cherrypy, pythonanywhere

Wie man CherryPy auf pythonanywhere.com einsetzt - python, flask, cherrypy, pythonanywhere

Ich habe eine Python App entwickelt auf Flask. Alles funktioniert offline einwandfrei, ich habe es auch mit CherryPy versucht. Jetzt versuche ich dasselbe auf www.pythonanywhere.com bereitzustellen.

Hier ist die deploy.py, die ich für die Bereitstellung der Flask-App auf CherryPy verwende

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"

Ich habe eine App "manuelle Konfiguration" auf pythonanywhere.com erstellt. Hier ist die Konfigurationsdatei (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()

Jetzt bin ich mir ziemlich sicher, dass es "fast funktioniert", denn in den Serverprotokollen konnte ich meine "Server initiated ..." Nachricht sehen.

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

Jetzt das Problem, wenn ich versuche, meine App username.pythtonanywhere.com/about zu sehen, es Timeout. Dies ist vermutlich auf einen falschen Port zurückzuführen, der beim Starten des CherryPy-Servers (in deploy.py) angegeben wurde.

Kann mir bitte jemand sagen, wie ich den CherryPy Server richtig einleiten kann?

Antworten:

2 für die Antwort № 1

Joe Doherty hat Recht. Sie möchten etwas mehr wie das in Ihrer wsgi Datei:

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)

Ich stecke alles fest, was auf deiner speziellen App basieren sollte.