2016-10-17 4 views
1

Я настроил virtualenv для запуска фляжного сервера. Я выполнил шаги по настройке wfastcgi для работы с iis. Кажется, он работает, поскольку я могу получить доступ к приложению python, но печатается стек ошибок python. произошлоFlask App на IIS с wfastcgi virtualenv - Пакет не найден

Ошибка при чтении WSGI обработчика:

Traceback (most recent call last): 
File "c:\python27\lib\site-packages\wfastcgi.py", line 793, in main 
env, handler = read_wsgi_handler(response.physical_path) 
File "c:\python27\lib\site-packages\wfastcgi.py", line 635, in read_wsgi_handler 
handler = get_wsgi_handler(os.getenv("WSGI_HANDLER")) 
File "c:\python27\lib\site-packages\wfastcgi.py", line 618, in get_wsgi_handler 
raise ValueError('"%s" could not be imported%s' % (handler_name, last_tb)) 
ValueError: "flask_app.application()" could not be imported: Traceback (most recent call last): 
File "c:\python27\lib\site-packages\wfastcgi.py", line 602, in get_wsgi_handler 
handler = __import__(module_name, fromlist=[name_list[0][0]]) 
File ".\flask_app.py", line 7, in <module> 
from app import app as application 
File ".\app\__init__.py", line 67, in <module> 
from flask_restless import APIManager 
ImportError: No module named flask_restless 

Я думаю, что это связано с тем, как я установил flask_restless. Я установил его с помощью

pip install -e git://github.com/jfinkels/flask-restless.git#egg=flask_restless 

, который, как представляется, не добавляет flask_restless в каталог Lib/site-packages. Но это не проблема, когда я запускаю приложение вручную.

Вот мой web.config:

<configuration> 
    <system.webServer> 
    <handlers> 
     <add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Python27\python.exe|C:\Python27\Lib\site-packages\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" /> 
    </handlers> 
    </system.webServer> 

    <appSettings> 
    <!-- Required settings --> 
    <add key="WSGI_HANDLER" value="flask_app.application()" /> 
    <add key="PYTHONPATH" value="C:\www\flask_app\virtualenv\src;C:\www\flask_app\virtualenv\Lib\site-packages;C:\www\flask_app\app" /> 

    <!-- Optional settings --> 
    <add key="WSGI_LOG" value="C:\inetpub\logs\wsgi.log" /> 
    <add key="WSGI_RESTART_FILE_REGEX" value=".*((\.py)|(\.config))$" /> 
    </appSettings> 
    </configuration> 

И мой flask_app.py выглядит следующим образом:

this_file = 'C:/www/flask_app/virtualenv/Scripts/activate_this.py' 
with open(this_file) as f: 
    code = compile(f.read(), this_file, 'exec') 
    exec(code) 


from app import app as application 

ответ

2

Я понятия не имею, если это правильно, но он сделал работу для меня. Было несколько разных пакетов, которые не могли найти wfastcgi, кроме фляжек-беспокойных. Поэтому, чтобы решить эту проблему, я закончил активацию виртуального env и распечатку переменной sys.path. Затем я скопировал все пути в файл PYTHONPATH в файле web.config.

Так что мой web.config теперь выглядит следующим образом:

<configuration> 
<system.webServer> 
<handlers> 
    <add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Python27\python.exe|C:\Python27\Lib\site-packages\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" /> 
</handlers> 
</system.webServer> 

<appSettings> 
<!-- Required settings --> 
<add key="WSGI_HANDLER" value="flask_app.application" /> 
<add key="PYTHONPATH" value="C:/www/Lib/site-packages;c:/python27/lib/site-packages/fabric-1.10.2-py2.7.egg;c:/python27/lib/site-packages/paramiko-1.16.0-py2.7.egg;c:/python27/lib/site-packages/ecdsa-0.13-py2.7.egg;c:/python27/lib/site-packages/pycrypto-2.6.1-py2.7-win32.egg;c:/python27/lib/site-packages/psycopg2-2.5.2-py2.7.egg;C:/Windows/system32/python27.zip;c:/python27/DLLs;c:/python27/lib;c:/python27/lib/plat-win;c:/python27/lib/lib-tk;c:/python27;c:/python27/lib/site-packages;C:/www/flask_app/virtualenv/src;C:/www/flask_app/virtualenv/Lib/site-packages;C:/www/flask_app/app;C:\www\flask_app\virtualenv\Lib\site-packages\Flask_Restless-1.0.0b1-py2.7.egg" /> 

<!-- Optional settings --> 
<add key="WSGI_LOG" value="C:/www/flask_app/flask.log" /> 
<add key="WSGI_RESTART_FILE_REGEX" value=".*((\.py)|(\.config))$" /> 
</appSettings> 
</configuration> 
+1

Использование ключа = «PYTHONPATH» настройка исправлена ​​проблема, я боролась с неделями. Спасибо! – Ari

 Смежные вопросы

  • Нет связанных вопросов^_^