Python ModuleNotFoundError package in azure app service

11 浏览
0 Comments

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.

0
0 Comments

问题的原因可能是在Azure App Service中找不到所需的Python模块。可能是由于以下原因之一:

1. 您在系统库中安装了flask-sqlalchemy,但尝试在虚拟环境中使用它。解决方法是在虚拟环境中安装该包。

2. 您在虚拟环境中成功安装了flask-sqlalchemy,但尝试使用系统Python来导入它。解决方法是确保使用虚拟环境中的Python来导入模块。

解决方法:

您可以尝试从虚拟环境中安装所需的包。以下是一个示例链接,显示如何在虚拟环境中安装软件包:

https://stackoverflow.com/a/59281844/6049604

此外,以下是一些其他参考链接,可能对解决问题有帮助:

- https://learn.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/

希望这些信息能对您有帮助。

0
0 Comments

问题出现的原因是因为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

0