【问题标题】:Can't get Flask running using Passenger WSGI on Dreamhost shared hosting无法在 Dreamhost 共享主机上使用乘客 WSGI 运行 Flask
【发布时间】:2012-05-10 07:41:00
【问题描述】:

我正在尝试让 Flask “hello world”应用程序在 Dreamhost 共享服务器上运行,遵循 instructions on their wiki,但我没有任何运气。

我的 Flask 应用程序是来自 Flask quickstart guide 的“hello world”应用程序:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()

根据 DH wiki 说明,我在名为 mysite 的文件夹中的一个名为“hello.py”的文件中找到了该文件。我的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 mysite import hello as application

我尝试在 Python 控制台中运行这些命令,但最后一个导入行失败,直到我将 __init__.py 文件添加到 mysite 目录。

当我尝试访问该网站时,我只收到一个 500 错误(不幸的是,日志中没有任何内容,除非它们在我无法访问的日志中,因为这是一个共享服务器......)。

由于这是最基本的设置(即从 wiki 复制和粘贴),我不禁觉得我错过了一些非常简单的东西。或者这在共享服务器上是不可能的?

【问题讨论】:

  • 你放入hashbang了吗? "在文件的第一行有 #!/usr/bin/python"
  • 刚刚试过你的建议,唉,没有任何效果...

标签: python passenger flask shared dreamhost


【解决方案1】:

回答我自己的问题是否意味着我在自言自语?

无论如何 - 我似乎已经修复了它。我没有找到一条有用的错误消息,而是一次又一次地完成了所有步骤,结果发现这是passenger_wsgi.py 文件中的一个导入错误。由于该应用位于mysite 子目录中,因此该行:

from mysite import hello as application

应该是(事实上,现在是):

from mysite.hello import app as application

而且它有效。哪个不错。

【讨论】:

  • +1 ... 不,这只是意味着您正在帮助使这个网站变得更好一点。谢谢!
  • 这对我有用。我只需要将 ____init__.py__ 文件添加到 mysite 目录中,这样 python 就会将该目录视为包含包。 docs.python.org/2/tutorial/modules.html#packagesstackoverflow.com/questions/448271/what-is-init-py-for
  • 这个解决方案确实有帮助,尽管我需要多一步才能使其工作:在DH wiki examplepassenger_wsgi.py 文件中,我取消了调试行的注释:# from werkzeug.debug import DebuggedApplication # application = DebuggedApplication(application, evalex=True) 这是有问题的,因为这些行没有正确缩进。如果要取消注释以启用调试,请务必删除两行之前的所有空格
猜你喜欢
  • 2017-11-08
  • 2020-05-04
  • 1970-01-01
  • 2014-04-09
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 2012-06-11
  • 1970-01-01
相关资源
最近更新 更多