团队,我一直在尝试在 Azure API 应用程序上托管 Flask API。而且它不起作用。
Azure API 应用程序正在运行。托管页面打开,Python 版本为 3.6.6。
我无法托管简单的 hello world 项目,我收到的不同错误如下。
无法在 web.config 中添加处理程序。如果添加500错误。
无法从 kudu 安装 Flask。获取权限错误。当使用 --user 安装时,flask 将安装到用户文件夹。更改了路径以包含此文件夹,但仍然无法导入 Flask。
使用 git 部署。上传成功,但部署时出现错误,指出 python 3.6 的运行时版本不受支持。
可能我缺少在 Azure API 应用程序上设置 python 的基础知识?问题是我总是收到 500 错误。但基本的 azure 托管起始页可以工作(除非我触摸 web.config)
注意: - 遵循 Baby Python API 教程。
按照 Azure 帮助部分中给出的说明进行操作
还添加了 python 3.6 扩展。一切都没有改变。
最佳答案
有一个类似的 SO 线程的答案 How to run python3.7 based flask web api on azure帮助使用 WSGI_Handle
部署您的 Flask 应用。
或者,如果您只是想知道如何在 Azure 上的官方 Flask 网站中运行 hello world
演示,就像在本地计算机上使用 flask run
一样,您可以按照我的步骤如下。
然后按照以下命令在 Kudu 控制台中升级 pip
并安装 flask
。
D:\home\python364x64>python -V
Python 3.6.4
D:\home\python364x64>pip -V
pip 9.0.1 from D:\home\python364x64\lib\site-packages (python 3.6)
D:\home\python364x64>python -m pip install --upgrade pip
Collecting pip
Downloading https://files.pythonhosted.org/packages/c2/d7/90f34cb0d83a6c5631cf71dfe64cc1054598c843a92b400e55675cc2ac37/pip-18.1-py2.py3-none-any.whl (1.3MB)
Installing collected packages: pip
Found existing installation: pip 9.0.1
Uninstalling pip-9.0.1:
Successfully uninstalled pip-9.0.1
Successfully installed pip-18.1
D:\home\python364x64>pip install flask
Collecting flask
Downloading https://files.pythonhosted.org/packages/7f/e7/08578774ed4536d3242b14dacb4696386634607af824ea997202cd0edb4b/Flask-1.0.2-py2.py3-none-any.whl (91kB)
Collecting click>=5.1 (from flask)
Downloading https://files.pythonhosted.org/packages/fa/37/45185cb5abbc30d7257104c434fe0b07e5a195a6847506c074527aa599ec/Click-7.0-py2.py3-none-any.whl (81kB)
Collecting Jinja2>=2.10 (from flask)
Downloading https://files.pythonhosted.org/packages/7f/ff/ae64bacdfc95f27a016a7bed8e8686763ba4d277a78ca76f32659220a731/Jinja2-2.10-py2.py3-none-any.whl (126kB)
Collecting Werkzeug>=0.14 (from flask)
Downloading https://files.pythonhosted.org/packages/20/c4/12e3e56473e52375aa29c4764e70d1b8f3efa6682bef8d0aae04fe335243/Werkzeug-0.14.1-py2.py3-none-any.whl (322kB)
Collecting itsdangerous>=0.24 (from flask)
Downloading https://files.pythonhosted.org/packages/76/ae/44b03b253d6fade317f32c24d100b3b35c2239807046a4c953c7b89fa49e/itsdangerous-1.1.0-py2.py3-none-any.whl
Collecting MarkupSafe>=0.23 (from Jinja2>=2.10->flask)
Downloading https://files.pythonhosted.org/packages/9d/80/9a5daf3ed7b8482e72ee138cef602b538cfba5c507e24e39fb95c189b16b/MarkupSafe-1.1.0-cp36-cp36m-win_amd64.whl
Installing collected packages: click, MarkupSafe, Jinja2, Werkzeug, itsdangerous, flask
The script flask.exe is installed in 'D:\home\python364x64\Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed Jinja2-2.10 MarkupSafe-1.1.0 Werkzeug-0.14.1 click-7.0 flask-1.0.2 itsdangerous-1.1.0
以下是他们的内容。
app.py
内容:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
web.config
内容:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="PYTHONPATH" value="D:\home\site\wwwroot" />
<add key="PATH" value="D:\home\python364x64;D:\home\python364x64\Scripts;%PATH%" />
</appSettings>
<system.webServer>
<handlers>
<add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
</handlers>
<httpPlatform processPath="D:\home\python364x64\Scripts\flask.exe" arguments="run --port %HTTP_PLATFORM_PORT%" stdoutLogEnabled="true" startupRetryCount='10'>
</httpPlatform>
</system.webServer>
</configuration>
然后刷新您的浏览器或先重新启动您的API应用程序到浏览器,您将看到如下图。
关于python - 在 Azure API 上托管 Flask(python) API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53906301/