Python ModuleNotFoundError package in azure app service
Python ModuleNotFoundError package in azure app service
我在Azure中使用Python3.7(Flask)Web应用程序,也确认Web应用程序堆栈运行的是Python3.7。该项目在127.0.0.1:5000(本地主机)上工作正常。当我尝试将部署脚本部署到Azure Web应用程序(应用服务)时,我遇到了以下错误:\n
File "/home/site/wwwroot/init.py",第2行,在中 2019-12-16T15:50:45.275997228Z from flask_sqlalchemy import SQLAlchemy 2019-12-16T15:50:45.276001128Z ModuleNotFoundError: No module named 'flask_sqlalchemy'
\n我已经在虚拟环境(env)中安装了Flask-SQLAlchemy,并运行了以下命令:\n
$ pip install Flask-SQLAlchemy
\n我还将Flask-SQLAlchemy导入到requirements.txt中:\n
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
\n我还运行了以下命令:\n
$ pip install -r requirements.txt
\n我的pip版本是19:\n
$ pip -V pip 19.0.3 from //venv/lib/python3.7/site-packages/pip (python 3.7)
\n包已安装在venv中:\n
$ 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
\n.
问题的原因可能是在Azure App Service中找不到所需的Python模块。可能是由于以下原因之一:
1. 您在系统库中安装了flask-sqlalchemy,但尝试在虚拟环境中使用它。解决方法是在虚拟环境中安装该包。
2. 您在虚拟环境中成功安装了flask-sqlalchemy,但尝试使用系统Python来导入它。解决方法是确保使用虚拟环境中的Python来导入模块。
解决方法:
您可以尝试从虚拟环境中安装所需的包。以下是一个示例链接,显示如何在虚拟环境中安装软件包:
https://stackoverflow.com/a/59281844/6049604
此外,以下是一些其他参考链接,可能对解决问题有帮助:
- https://www.reddit.com/r/flask/comments/9r0kmz/python_37_error_with_flasksqlalchemy/
希望这些信息能对您有帮助。
问题出现的原因是因为venv
没有将antenv.tar.gz
文件导出到webapp中。
解决方法是不使用az webapp up --sku F1 -n <app-name> -l <location-name>
来重新部署更新,而是使用本地Git部署到Azure App Service。
具体步骤如下:
1. 打开Azure Portal,并登录到您的Azure账户。
2. 在Azure Portal中,选择您的App Service应用程序。
3. 在左侧导航栏中,选择“部署中心”。
4. 在“部署中心”页面中,选择“本地Git”。
5. 在“本地Git”页面中,选择“设置”。
6. 在“设置”页面中,选择“部署凭据”。
7. 在“部署凭据”页面中,选择“用户名和密码”选项,并设置一个用户名和密码。
8. 在本地终端中,使用git clone
命令将应用程序的Git仓库克隆到本地。
9. 在本地终端中,导航到克隆的Git仓库目录。
10. 使用git remote add azure <git-url>
命令将Azure App Service的Git URL添加为远程仓库。
11. 使用git push azure master
命令将本地代码推送到Azure App Service。
12. 等待部署完成,并在Azure Portal中查看部署日志。
通过以上步骤,您可以使用本地Git将应用程序部署到Azure App Service,解决了Python ModuleNotFoundError package in azure app service
的问题。
更多关于如何使用本地Git部署到Azure App Service的详细说明,请参考https://learn.microsoft.com/en-us/azure/app-service/deploy-local-git。