Azure 部署未安装requirements.txt 中列出的Python 包

2024-06-19

这是我第一次将 Flask Web 应用程序部署到 Azure。 我跟着这个tutorial https://azure.microsoft.com/en-us/documentation/articles/web-sites-python-create-deploy-flask-app/.

他们的默认演示应用程序对我来说效果很好。

之后,我通过 git 推送了 Flask 应用程序。日志显示部署成功。但是,当我通过“应用程序属性”中提供的链接浏览托管应用程序时,出现 500 错误,如下所示:

由于服务器内部错误,该页面无法显示 发生。

最可能的原因:IIS收到请求;然而,一个内部 处理请求期间发生错误。根本原因是 此错误取决于哪个模块处理请求以及处理的是什么 发生此错误时发生在工作进程中。 IIS 不是 能够访问网站或应用程序的 web.config 文件。 如果 NTFS 权限设置不正确,则可能会发生这种情况。 IIS 是 无法处理网站或应用程序的配置。这 经过身份验证的用户无权使用此 DLL。这 请求映射到托管处理程序,但 .NET 扩展性 功能未安装。

通过 KUDU 浏览 wwwroot,我看到的唯一不合理的事情是,尽管 wwwroot 中存在“requirements.txt”文件,但我在本地虚拟环境中安装的软件包都没有安装在 Azure 上。

我的理解是,在 GIT 成功推送后,Azure 会 pip 安装在 requests.txt 中找到的任何不存在的包。但这似乎并没有发生在我身上。

我是否做错了什么,丢失的包裹只是一个症状,还是可能是问题的原因?

Notes:

  • 我的 Flask 应用程序在本地(linux)和第 3 方 VPS 上运行良好

  • 我从头开始重新部署了好几次都无济于事(我使用的是本地GIT方法)

  • 我在本地克隆了 Azure Flask 演示应用程序,仅更改了应用程序文件夹并推送回 Azure,但没有成功。

  • Azure 设置为 Python 2.7 与我本地的虚拟环境相同

  • 正如上面链接的教程中所建议的,我删除了“env”文件夹并重新部署以欺骗 Azure 重新安装虚拟环境。它确实做到了,但有自己的默认包,而不是我的requirements.txt中的包。

我的requirements.txt有以下内容:

bcrypt==3.1.0 cffi==1.7.0 click==6.6 Flask==0.11.1 Flask-Bcrypt==0.7.1 Flask-Login==0.3.2 Flask-SQLAlchemy==2.1 Flask-WTF==0.12 它的危险==0.24 Jinja2==2.8 MarkupSafe==0.23 pycparser==2.14 PyMySQL==0.7.7 python-http-client==1.2.3 六==1.10.0 smtpapi==0.3.1 SQLAlchemy==1.0.14 Werkzeug==0.11.10 WTForms==2.1


由于 Azure Web Apps 将运行deploy.cmd脚本作为部署任务来控制部署期间将运行哪些命令或任务。

您可以使用Azure-CLI的命令azure site deploymentscript --python获取Python应用程序的部署任务脚本。

您可以在其中找到以下脚本deploy.cmd sciprt:

IF NOT EXIST "%DEPLOYMENT_TARGET%\requirements.txt" goto postPython
IF EXIST "%DEPLOYMENT_TARGET%\.skipPythonDeployment" goto postPython

echo Detected requirements.txt.  You can skip Python specific steps with a .skipPythonDeployment file.

So the .skipPythonDeployment将跳过部署任务中的所有以下步骤,包括创建虚拟环境。

您可以尝试删除.skipPythonDeployment从您的应用程序中删除,然后重试。

另外,请参考https://github.com/projectkudu/kudu/wiki/Custom-Deployment-Script https://github.com/projectkudu/kudu/wiki/Custom-Deployment-Script了解更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure 部署未安装requirements.txt 中列出的Python 包 的相关文章

随机推荐