azure 应用服务中的 Python ModuleNotFoundError 包
Posted
技术标签:
【中文标题】azure 应用服务中的 Python ModuleNotFoundError 包【英文标题】:Python ModuleNotFoundError package in azure app service 【发布时间】:2020-04-09 03:25:08 【问题描述】:我在 Azure 中使用 Python3.7 (Flask) webapp
我也被确认运行 Python3.7 的 Web 应用 Stack 运行时
项目在 127.0.0.1:5000 (localhost) 中运行良好
当我尝试将脚本部署到 azure webapp(应用服务)中时
我收到了这个错误:-
File "/home/site/wwwroot/init.py", line 2, in <module>
2019-12-16T15:50:45.275997228Z from flask_sqlalchemy import SQLAlchemy
2019-12-16T15:50:45.276001128Z ModuleNotFoundError: No module named 'flask_sqlalchemy'
我已经在 venv (env) 中安装了 Flask-SQLAlchemy 正在运行
$ pip install Flask-SQLAlchemy
我还将 Flask-SQLAlchemy 导入到 requirements.txt 中
flask_sqlalchemy==2.4.1
sqlalchemy==1.3.11
click==6.7
Flask==1.0.2
itsdangerous==0.24
Jinja2==2.10
MarkupSafe==1.0
Werkzeug==0.14.1
flask_admin==1.5.3
flask_login==0.4.1
pyodbc==4.0.27
我也跑
$ pip install -r requirements.txt
我的 pip 版本是 19
$ pip -V
pip 19.0.3 from /<project_path>/venv/lib/python3.7/site-packages/pip (python 3.7)
在venv中安装包
$ ls venv/lib/python3.7/site-packages/
Flask-1.0.2.dist-info flask_sqlalchemy
Flask_Admin-1.5.3-py3.7.egg-info itsdangerous-0.24-py3.7.egg-info
Flask_Login-0.4.1-py3.7.egg-info itsdangerous.py
Flask_SQLAlchemy-2.4.1.dist-info jinja2
Jinja2-2.10.dist-info markupsafe
MarkupSafe-1.0-py3.7.egg-info pip
SQLAlchemy-1.3.11.dist-info pip-19.0.3.dist-info
WTForms-2.2.1.dist-info pkg_resources
Werkzeug-0.14.1.dist-info pyodbc-4.0.27.dist-info
__pycache__ pyodbc.cpython-37m-darwin.so
click setuptools
click-6.7.dist-info setuptools-40.8.0.dist-info
easy-install.pth sqlalchemy
easy_install.py werkzeug
flask wheel
flask_admin wheel-0.33.6.dist-info
flask_login wtforms
.
【问题讨论】:
也许它不使用你的 venv 来运行它。 在项目文件夹中作为默认的 azure 查找 venv 环境 我对同样的包也有同样的问题。 【参考方案1】:问题是因为venv
没有将antenv.tar.gz
文件导出到webapp中
请不要使用az webapp up --sku F1 -n <app-name> -l <location-name>
重新部署更新
使用本地 Git 部署到 Azure 应用服务:-
https://docs.microsoft.com/en-us/azure/app-service/deploy-local-git
【讨论】:
【参考方案2】:我会检查我的激活环境是否存在这种情况,因为您已经检查了 SQLAlchemy 的包是否已在文件夹中可用。
可能发生的情况是您正在使用系统 pip (pip3) 将 flask-sqlalchemy 安装到系统库,然后尝试从您的 venv 中使用它。也可能发生的情况是您成功将flask-sqlalchemy安装到您的venv,然后使用系统python(不是venv)尝试导入它。
您可以尝试从您的 venv 安装软件包吗:
https://***.com/a/59281844/6049604
补充参考:
https://docs.microsoft.com/en-us/azure-stack/user/azure-stack-dev-start-howto-vm-python?view=azs-1910
https://www.reddit.com/r/flask/comments/9r0kmz/python_37_error_with_flasksqlalchemy/
希望对你有帮助。
【讨论】:
问题不只是flask-sqlalchemy包requirements.txt中的任何新包没有安装我还有另一个应用程序工作正常可能是因为wwwroot中的antenv.tar.gz文件我的应用程序没有问题antenv.tar.gz 所以 venv 不能工作,因为 venv 在 webapp 中导入以上是关于azure 应用服务中的 Python ModuleNotFoundError 包的主要内容,如果未能解决你的问题,请参考以下文章