Flask, IIS, Python, wfastcgi Ошибка при чтении обработчика WSGI: ImportError: не удается импортировать имя 'Flask'
Моя проблема в том, что я пытаюсь развернуть простую флешку app.py:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello from FastCGI via IIS!"
if __name__ == "__main__":
app.run()
с этим web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="Python FastCGI" path="*" verb="*"
modules="FastCgiModule" scriptProcessor="C:\Python34\python.exe|C:\Python34\lib\site-packages\wfastcgi.py"
resourceType="Unspecified" requireAccess="Script" />
</handlers>
<httpErrors errorMode="Detailed" />
</system.webServer>
<appSettings>
<!-- Required settings -->
<add key="WSGI_HANDLER" value="app.app" />
<add key="PYTHONPATH" value="D:\Web\flaskapp" />
</appSettings>
</configuration>
я получаю сообщение обошибке:
Error occurred while reading WSGI handler:
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\wfastcgi.py", line 791, in main
env, handler = read_wsgi_handler(response.physical_path)
File "C:\Python34\lib\site-packages\wfastcgi.py", line 633, in read_wsgi_handler
handler = get_wsgi_handler(os.getenv("WSGI_HANDLER"))
File "C:\Python34\lib\site-packages\wfastcgi.py", line 616, in get_wsgi_handler
raise ValueError('"%s" could not be imported%s' % (handler_name, last_tb))
ValueError: "app.app" could not be imported: Traceback (most recent call last):
File "C:\Python34\lib\site-packages\wfastcgi.py", line 600, in get_wsgi_handler
handler = __import__(module_name, fromlist=[name_list[0][0]])
File ".\app.py", line 2, in <module>
from flask import Flask
ImportError: cannot import name 'Flask'
Он не хочет импортировать мои библиотеки (не все! Он может навязывать время и тому подобное).
построить:
wfastcgi-3.0.0-py3.4.egg-info
Flask-1.0.2.dist-info
python 3.4
IIS 10.0.14393
Большое спасибо за любую помощь.
2 ответа
Решение
У меня была такая же проблема, когда я пытался интегрировать фляжку в IIS. Путь установки python находился в папке «C:\Program files», и ошибка возникла из-за того, что в пути есть пробел (между программой и файлами). Я просто переустановил python в каталог без пробелов (например, C:\Python_39), и все работало нормально.