首先,我按照 Matt Carrier 博客上教程中的说明进行操作(尽管假设我会在我的域上创建一个子目录,但实际上我不是)。然后我删除了所有内容并重新开始使用 Dreamhost wiki 页面上有关 Flask 的说明。每次,我都会在浏览器中收到一条消息:“导入您的乘客wsgi.py 时出错”。StackOverflow 上这个主题的答案对我不起作用。
我的passenger_wsgi.py 文件是:
import sys, os
INTERP = os.path.join(os.environ['HOME'], 'flask_env', 'bin', 'python')
if sys.executable != INTERP:
os.execl(INTERP, INTERP, *sys.argv)
sys.path.append(os.getcwd())
from flask import Flask
application = Flask(__name__)
sys.path.append('penguicon-trax')
from penguicon-trax.penguicontrax import app as application
penguicon-trax 是当我将我的应用程序克隆到我安装 Flask 的 virtualenv 时 Git 创建的目录的名称(不在公共目录中)。该应用程序是 penguitrax.py,没有破折号。
我确保passenger_wsgi.py 第四行的缩进是一个制表符,而不是空格。
我使用 DreamHost 网络面板(我完全托管)来制作 /home/username/flask_env/public 并标记了“Passenger(仅限 Ruby/Python 应用程序)”复选框并单击了“更改设置”按钮。
我将passenger_wsgi.py 直接FTP 到Dreamhost 上的flask_env 目录中。当我 SSH 进入 Dreamhost 时,命令行上的 ls 给了我:
bin lib passenger_wsgi.pyc public
include passenger_wsgi.py penguicon-trax
当我通过 SSH 运行passenger_wsgi.py 时,它给了我:
File "passenger_wsgi.py", line 11
from penguicon-trax.penguicontrax import app as application
^
SyntaxError: invalid syntax
当我只使用“从 penguicon-trax 导入应用程序作为应用程序”时,它也会这样做。
当我更改该行以删除破折号:“penguicontrax.penguicontrax”并运行它时,它给了我“ImportError:没有名为 penguicontrax 的模块”。
如果我将行更改为“从 penguitrax 导入应用程序作为应用程序”并通过 SSH 运行它,它不会给我任何错误消息或其他输出。但是,我的域现在给出了 404。
你能告诉我我做错了什么吗?