Вопрос по python, flask, apache, mod-wsgi – Flask, mod_wsgi и Apache: ImportError

8

я получаю это в моих журналах ошибок:

ImportError: нет модуля с именем flask

Это выглядит так же, как вDjango + mod_wsgi + apache: ошибка импорта в / без модуля с именем djproj.urls, но я попробовал это решение, и оно неКажется, это не работает ... Я правильно вставляю домашнюю и родительскую папку приложения в системный путь, но эта ошибка все еще появляется.

Переход на мою страницу все еще поднимает 500 страниц.

Больше информации: ям используюAmazon EC2 бесплатный уровень, с Apache в виде httpd. Все установлено правильно, яя уверен ...

Вот's мои вещи (название приложенияbadassery и имя домашней папки приложенияhatemail - Я очень передумал)

Журнал ошибок

[Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] mod_wsgi (pid=28143): Target WSGI script '/home/ec2-user/hatemail/badassery.wsgi' cannot be loaded as Python module.
[Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] mod_wsgi (pid=28143): Exception occurred processing WSGI script '/home/ec2-user/hatemail/badassery.wsgi'.
[Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] Traceback (most recent call last):
[Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148]   File "/home/ec2-user/hatemail/badassery.wsgi", line 6, in 
[Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148]     from badassery import app as application
[Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148]   File "/home/ec2-user/hatemail/badassery.py", line 6, in 
[Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148]     from flask import Flask, request, session, url_for, redirect, render_template, abort, g, flash, _app_ctx_stack
[Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] ImportError: No module named flask
[Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] mod_wsgi (pid=28143): Target WSGI script '/home/ec2-user/hatemail/badassery.wsgi' cannot be loaded as Python module.
[Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] mod_wsgi (pid=28143): Exception occurred processing WSGI script '/home/ec2-user/hatemail/badassery.wsgi'.
[Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] Traceback (most recent call last):
[Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148]   File "/home/ec2-user/hatemail/badassery.wsgi", line 6, in 
[Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148]     from badassery import app as application
[Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148]   File "/home/ec2-user/hatemail/badassery.py", line 6, in 
[Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148]     from flask import Flask, request, session, url_for, redirect, render_template, abort, g, flash, _app_ctx_stack
[Sun Nov 11 07:14:45 2012] [error] [client 18.189.71.148] ImportError: No module named flask
badassery.wsgi
import sys

sys.path.insert(0,'/home/ec2-user/hatemail')
sys.path.insert(1,'/home/ec2-user')

from badassery import app as application

Дополнения к файлу httpd.conf

WSGISocketPrefix /var/run/wsgi


        ServerName 54.243.61.41
        DocumentRoot "/home/ec2-user/hatemail"

        WSGIDaemonProcess badassery user=apache group=apache processes=1 threads=5
        WSGIScriptAlias / /home/ec2-user/hatemail/badassery.wsgi
        WSGIScriptReloading On

        
                WSGIProcessGroup badassery
                WSGIApplicationGroup %{GLOBAL}
                Order deny,allow
                Allow from all
        

Структура каталогов

~
    hatemail
        badassery.py
        badassery.wsgi
        Procfile
        README
        requirements.txt
        schema.sql
        static/
        templates/
        venv/bin/activate

Да делаюеслиназвание == 'главный': app.run () ".

Как я могу решить эту проблему?

Вы можете запустить интерактивную оболочку Python и набрать:import flask  Что ты видишь? MalphasWats
Доступны ли файлы для чтения пользователю Apache? Graham Dumpleton

Ваш Ответ

2   ответа
13

вы развертываете virtualenv, выСначала убедитесь, что активировали его. Вам следует обновить файл wsgi следующим образом (обновить значения в соответствии с вашей средой):

activate_this = '/path/to/virtualenv/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this)

import sys
sys.path.insert(0, '/path/to/flask/appname')
sys.path.insert(0,'/home/ec2-user/hatemail')
sys.path.insert(1,'/home/ec2-user')

from badassery import app as application

Если ты неЧтобы развернуть virtualenv, вам, вероятно, нужно просто убедиться, что Flask установлен в вашей системе. ;мы уже установленыsetuptools Вы можете просто:

easy_install flask
Благодарю. Этот ответ действительно решил часы тряски головой. Kneel-Before-ZOD
3

Если у вас возникли проблемы с импортом при использованииwsgi_modУбедитесь, что вы пытаетесь явно указать файлы импорта, которые вызывают проблемы:

sys.path.append('/home/foo/www/Forms')

тогда сделай свой импорт!

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