Вопрос по passenger, python, dreamhost, shared, flask – Невозможно запустить Flask с помощью Passenger WSGI на виртуальном хостинге Dreamhost

10

Я пытаюсь получить настой "Привет, мир" приложение работает на общем сервере Dreamhost, следуяинструкции на их викино мне не повезло.

Мое приложение Flask - это "привет мир" один изКраткое руководство по Flask:

<code>from flask import Flask
app = Flask(__name__)

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

if __name__ == '__main__':
    app.run()
</code>

Который я "получил" в файле "hello.py" в папке с именем mysite, в соответствии с инструкциями DH вики. Мой файл passenger_wsgi.py:

<code>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
</code>

Я пытался запустить команды в консоли Python, и последняя строка импорта не удалась, пока я не добавил__init__.py файл в каталог mysite.

Когда я пытаюсь получить доступ к веб-сайту, я просто получаю сообщение об ошибке 500 (и, к сожалению, в журналах ничего нет, если только они не находятся в журналах, я не могу добраться до этого, поскольку это общий сервер ...).

Поскольку это самая базовая из настроек (то есть скопированная и вставленная из вики), я не могу избавиться от ощущения, что упустил что-то действительно простое. Или, возможно, это невозможно на общем сервере?

Просто попробовал ваше предложение, увы, оно не имело никакого эффекта ... Dave Hollingworth
Вы положили в hashbang? & quot; иметь #! / usr / bin / python в самой первой строке файла & quot; Theron Luhn

Ваш Ответ

1   ответ
19

Во всяком случае - кажется, я это исправил. Вместо того, чтобы найти хорошее полезное сообщение об ошибке, я повторил все шаги по одному, и оказалось, что это была ошибка импортаpassenger_wsgi.py файл. Как приложение находится вmysite подкаталог, строка:

from mysite import hello as application

должно было (и на самом деле сейчас есть):

from mysite.hello import app as application

И это работает. Что приятно.

Выручил меня, спасибо!
Это сработало для меня. Мне просто нужно было добавить файл ____ init __. Py__ в каталог mysite, чтобы python рассматривал этот каталог как содержащий пакеты.docs.python.org/2/tutorial/modules.html#packages stackoverflow.com/questions/448271/what-is-init-py-for
+1 ... и нет, это просто означает, что вы помогаете сделать этот сайт немного лучше. Спасибо за это!
Это решение действительно помогло, хотя мне потребовался еще один шаг, чтобы заставить его работать: вDH wiki example Файл passenger_wsgi.py, я раскомментировал строки отладки:# from werkzeug.debug import DebuggedApplication # application = DebuggedApplication(application, evalex=True)  Это было проблематично, потому что строки не имеют правильного отступа. Не забудьте удалить все пробелы перед обеими строками, если вы хотите раскомментировать их, чтобы включить отладку

Похожие вопросы