Dreamhos上的Flask乘客WSGI

2024-10-01 13:29:17 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我按照Matt Carrier博客上的教程中的说明进行操作(尽管假设我会在我的域上创建一个子目录,而我没有这样做)。然后我删除了所有内容,重新开始阅读Dreamhost wiki页面上关于烧瓶的说明。每次,我都会在浏览器中看到一条消息:“导入您的乘客时出错_wsgi.py". answer for this topic on StackOverflow不适合我。在

我的乘客_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是Git将我的应用程序克隆到安装了Flask的virtualenv(不在public目录中)时创建的目录名。应用程序是彭桂合同.py没有破折号。在

我确定了第四排乘客的缩进_wsgi.py是个标签,不是空格。在

我使用DreamHost webpanel(我完全托管在那里)将/home/username/flask_env/public设置为/home/username/flask_env/public,并选中“Passenger(仅限Ruby/Python应用程序)”复选框并单击“更改设置”按钮。在

我骗了乘客_wsgi.py直接进入我在Dreamhost上的flask_env目录。当我通过SSH进入Dreamhost时,命令行上的ls给出了:

^{pr2}$

当我运行乘客_wsgi.py通过SSH,它给了我:

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.penguicontrax运行它,它会给我“ImportError:没有名为penguicontrax的模块”。在

如果我将这行代码改为“from penguicontrax import app as application”,并通过SSH运行它,它不会给出错误消息或其他输出。但是,我的域名现在给出了404。在

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


Tags: frompyimportenvappflaskwsgiapplication
1条回答
网友
1楼 · 发布于 2024-10-01 13:29:17

如果你的乘客_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中的一个文件中/彭桂合同.py最后,运行以下命令进行测试:

^{pr2}$

相关问题 更多 >