python - Dreamhost 上的 Flask Passenger WSGI

标签 python flask passenger dreamhost

首先,我按照 Matt Carrier 博客上的教程中的说明进行操作(尽管假设我会在我的域上创建一个子目录,但实际上我没有)。然后我删除了所有内容并按照 Dreamhost wiki 页面上有关 Flask 的说明重新开始。每次,我都会在浏览器中收到一条消息:“导入您的passenger_wsgi.py时发生错误”。 answer for this topic on 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 创建的目录名称(不在公共(public)目录中)。该应用程序是不带破折号的 penguicontrax.py。

我确保passenger_wsgi.py第四行的缩进是制表符,而不是空格。

我使用 DreamHost webpanel(完全托管的地方)创建/home/username/flask_env/public,并标记了“Passenger(仅限 Ruby/Python 应用程序)”复选框,然后单击“更改设置”按钮。

我直接通过 FTP 将 Passenger_wsgi.py 传输到 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

当我只使用“from penguicon-trax import app as application”时,它也会这样做。

当我更改该行以删除破折号:“penguicontrax.penguicontrax”并运行它时,它会给出“ImportError:没有名为 penguicontrax 的模块”。

如果我将该行更改为“from penguicontrax import app as application”并通过 SSH 运行它,它不会给我任何错误消息或其他输出。然而,我的域名现在给出了 404。

你能告诉我我做错了什么吗?

最佳答案

如果您的passenger_wsgi.py末尾有以下代码:

from foo.bar import app as application

...那么您需要一个名为“foo”的子目录,其中包含两个文件:一个名为 bar.py 的文件和另一个名为 __init__.py 的文件以便 Python 识别该目录包含模块代码。

在您的示例中,从文件夹名称 (penguicon-trax) 中删除破折号,因为 modules should have short, all-lowercase names 。然后,你的Flask application code将位于 $HOME/flask_env/penguicontrax/penguicontrax.py 中的文件中最后,运行以下命令进行尝试:

touch $HOME/flask_env/penguicontrax/__init__.py
python $HOME/flask_env/passenger_wsgi.py

关于python - Dreamhost 上的 Flask Passenger WSGI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17778894/

相关文章:

python - 如何从 Flask 在 SQLAlchemy 中重新创建数据库?

python - 在 Flask 中使用 SQLAlchemy 创建数据库

ruby-on-rails - 乘客独立重启应用程序在更新到 5.0.18 后无法正常工作

ruby-on-rails - 没有这样的文件或目录 - config/environment.rb phusion guest apache centos 6.3 Rails

ruby-on-rails - stderr/usr/local/bin/bundle : argument list too long while bundle install

Python:如果行中只有 1 个单词,则替换数据框/列中的字符串

android - Python 使用 ApkTool 和 Subprocess 反编译 APK

python - 从频率,和弦在 python 中播放流式声音

python - 如何在 SQLAlchemy Alembic 迁移中更新记录?

python - Flask-Uploads URL 始终是 404