Я пытался развернуть веб-сайт в Azure с помощью служб приложений.Я использовал файл require.txt для установки flask и wfastcgi и других необходимых зависимостей, также я использую Python 3.6.Я настроил файл web.config для правильного запуска python и использования пакета wfastcgi.Когда я пытаюсь перейти на сайт, я получаю ошибку wfastcgi, подобную этой.
Error occurred while reading WSGI handler:
Traceback (most recent call last):
File "D:\Python34\Scripts\wfastcgi.py", line 711, in main
env, handler = read_wsgi_handler(response.physical_path)
File "D:\Python34\Scripts\wfastcgi.py", line 568, in read_wsgi_handler
return env, get_wsgi_handler(handler_name)
File "D:\Python34\Scripts\wfastcgi.py", line 551, in get_wsgi_handler
raise ValueError('"%s" could not be imported' % handler_name)
ValueError: "D:\home\site\wwwroot\FlaskTest.app" could not be imported
Мои файлы хранятся в папке "D: \ home \ site \ wwwroot". Она структурирована примерно так:
D:\home\site\wwwroot
|FlaskTest.py
|web.config
|requirements.txt
My FlaskTest.py - просто простое приложение Flask для быстрого запуска.
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello from FastCGI via IIS!"
if __name__ == '__main__':
app.run()
А вот мой Web.config:
<configuration>
<system.webServer>
<handlers>
<add name="PythonHandler" path="*" verb="*" modules="FastCgiModule"
scriptProcessor="D:\Python34\python.exe|D:\Python34\scripts\wfastcgi.py"
resourceType="Unspecified" requireAccess="Script"/>
</handlers>
<httpErrors errorMode="Detailed" />
</system.webServer>
<appSettings>
<add key="PYTHONPATH" value="D:\home\site\wwwroot" />
<add key="WSGI_HANDLER" value="D:\home\site\wwwroot\FlaskTest.app" />
<add key="WSGI_LOG" value="D:\home\LogFiles\wfastcgi.log"/>
</appSettings>
</configuration>
Iя действительно не уверен, что не так с ключом WSGI_HANDLER.Из всего, что я прочитал, это должно работать.Я попытался добавить init .py в каталог, и я все еще получаю ошибку.По какой-то причине я могу понять, что у Wfastcgi возникают проблемы с импортом объекта «app», так как у меня есть объект Flask, названный так.Любой свет, который можно пролить на это, будет очень признателен, так как я уже несколько дней бьюсь о него.