通过三种方法将Django App部署到Azure失败(创建/访问tmp文件的问题)

时间:2020-10-21 15:17:43

标签: python django git azure

我一直试图将代码从我的Django应用程序上传到Azure。使用多种方法,它一直失败,并显示以下日志消息。失败似乎与通过Onyx构建创建临时目录有关。为了透明起见,我是Django和Azure的新手。

首先,我研究了Azure教程(下面的链接),并且能够使它以最少的问题运行。

https://docs.microsoft.com/en-us/azure/app-service/tutorial-python-postgresql-app?tabs=bash%2Cclone

当我尝试对自己的应用程序执行相同的步骤(使用“ webapp up”)时,收到以下错误消息:

邮编部署失败。 {'id':'XXXXX', '状态':3,'状态文本':'','作者电子邮件':'不适用','作者': 'N / A','deployer':'Push-Deployer','message':'通过推送创建 部署”,“进度”:,“ received_time”: '2020-10-21T13:59:11.0137785Z','开始时间': '2020-10-21T13:59:11.3572791Z','结束时间': '2020-10-21T13:59:34.2598809Z','last_success_end_time':无, '完成':真,'活动':假,'is_temp':假,'is_readonly': 正确,“ url”: 'https://att-informativeness-task.scm.azurewebsites.net/api/deployments/latest', 'log_url': 'https://att-informativeness-task.scm.azurewebsites.net/api/deployments/latest/log', 'site_name':'att-informativeness-task'}。请运行命令az webapp日志部署显示-n att-informativeness-task -g DjangoPostgres-attInform-rg

运行他们推荐的命令,

az webapp log deployment show -n att-informativeness-task -g DjangoPostgres-attInform-rg

我得到:

[{ “ details_url”:null, “ id”:“ XXXXXX”, “ log_time”:“ 2020-10-21T13:59:11.2061269Z”, “ message”:“正在更新子模块。”, “ type”:0},{ “ details_url”:null, “ id”:“ XXXXXX”, “ log_time”:“ 2020-10-21T13:59:11.324348Z”, “ message”:“为提交ID'53d578b78c'准备部署。”, “ type”:0},{ “ details_url”:null, “ id”:“ XXXXXX”, “ log_time”:“ 2020-10-21T13:59:11.6729002Z”, “ message”:“存储库路径为/ tmp / zipdeploy / extracted”, “ type”:0},{ “ details_url”:“ https://att-informativeness-task.scm.azurewebsites.net/api/deployments/53d578b78cf941b986537b13d0e6dd06/log/cb3995cc-27c2-4ca7-af9e-f0ca9f2446b7” “ id”:“ XXXXXX”, “ log_time”:“ 2020-10-21T13:59:11.8452701Z”, “ message”:“正在运行oryx build ...”, “ type”:2}]

在他们链接的日志文件中,它给出的错误类似于我从Bitbucket得到的错误。正如下面以更具可读性的格式粘贴的内容,我不会在此处粘贴它。

经过无数次尝试,然后我尝试按照说明进行操作以推送到Azure目录,如以下链接所述(将运行时替换为“ python:3.6”)。

https://docs.microsoft.com/en-us/azure/developer/javascript/tutorial-vscode-azure-cli-node-04

运行命令时

git push azure master

我收到错误消息:

远程:...................................远程:Pip安装要求。 远程:无效要求:'asgiref @ file:/// tmp / build / 80754af9 / asgiref_1602513567813 / work'远程: 追溯(最近一次通话):远程:文件 “ c:\ home \ site \ wwwroot \ env \ lib \ site-packages \ pip_internal \ req \ req_install.py”, 第252行,在from_line远程中:req = Requirement(req)远程:
文件 “ c:\ home \ site \ wwwroot \ env \ lib \ site-packages \ pip_vendor \ packaging \ requirements.py”, 第104行,在 init 远程中:提高InvalidRequirement(“ Invalid 指定的网址”)远程: pip._vendor.packaging.requirements.InvalidRequirement:无效的URL 给定的远程:远程:您正在使用pip版本10.0.1,但是 版本20.2.4可用。远程:您应考虑通过以下方式进行升级 'python -m pip install --upgrade pip'命令。远程:错误 网站部署期间发生的错误。远程:远程:错误- 更改已提交到远程存储库,但已部署到网站 失败。

(顺便说一句,我的点子版本是20.2.4)

最后,我尝试将其链接到bitbucket存储库,如下面的链接所述。

https://stories.mlh.io/deploying-a-basic-django-app-using-azure-app-services-71ec3b21db08

在Azure部署中心中,它的状态为“失败”,并显示以下消息。

命令:oryx build / home / site / repository -o / home / site / wwwroot --platform python --platform-version 3.7 -i / tmp / 8d875cc3f8eaaa0 -p compress_virtualenv = tar-gz -p virtualenv_name = antenv --log-file /tmp/build-debug.log由Microsoft Oryx执行的操作, https://github.com/Microsoft/Oryx您可以在以下位置报告问题 https://github.com/Microsoft/Oryx/issues

Oryx版本:0.2.20200917.1,提交: 59deb778658a124cb74ea8e2c8f39fa87abcc9d9,ReleaseTagName:20200917.1

内部操作ID:| 65ZW7nGEe38 = .2744c71e_存储库提交: fa4d6bc9674997d6c32b0dd6ffc32c29c4364488

检测平台...检测到以下平台:python:3.7.9 警告:检测到过时的python版本(3.7.9)。考虑 正在更新。\ nOryx支持的版本: https://github.com/microsoft/Oryx

使用中间目录'/ tmp / 8d875cc3f8eaaa0'。

正在将文件复制到中间目录...在1秒内完成。

源目录:/ tmp / 8d875cc3f8eaaa0目标目录: / home / site / wwwroot

Python版本:/opt/python/3.7.9/bin/python3.7 Python虚拟 环境:antenv创建虚拟环境...激活虚拟 环境...运行pip安装... [14:19:18 + 0000]收集中 appnope == 0.1.0 [14:19:18 + 0000]下载 appnope-0.1.0-py2.py3-none-any.whl(4.0 kB)错误:无法安装 由于EnvironmentError导致的软件包:[Errno 2]没有此类文件或 目录:“ / tmp / build / 80754af9 / asgiref_1602513567813 / work” [14:19:18 + 0000]处理中 / tmp / build / 80754af9 / asgiref_1602513567813 / work

警告:您正在使用pip版本20.1.1;但是,版本20.2.4是 可用。您应该考虑通过 '/ tmp / 8d875cc3f8eaaa0 / antenv / bin / python -m pip install --upgrade pip' 命令。错误:由于EnvironmentError无法安装软件包: [Errno 2]没有这样的文件或目录: '/ tmp / build / 80754af9 / asgiref_1602513567813 / work'\ n \ n警告:您在 使用pip版本20.1.1;但是,版本20.2.4可用。\ n您 应该考虑通过 '/ tmp / 8d875cc3f8eaaa0 / antenv / bin / python -m pip install --upgrade pip' 命令。\ n / opt / Kudu / Scripts / starter.sh oryx构建 / home / site / repository -o / home / site / wwwroot --platform python --platform-version 3.7 -i / tmp / 8d875cc3f8eaaa0 -p compress_virtualenv = tar-gz -p virtualenv_name = antenv --log-file /tmp/build-debug.log

对于所有这些,似乎问题集中在创建和访问tmp目录。这很奇怪,因为该过程使用了Azure教程代码。我尝试通过创建“ production.py”和“ settings.txt”之类的文件,更改我的“ settings.py”文件中的变量,并遵循运行后的建议,使自己的代码与示例一致

python manage.py check --deploy

真的任何建议都将受到欢迎。谢谢!

1 个答案:

答案 0 :(得分:0)

弄清楚发生了什么。以为我会在这里发布答案,以防其他新手遇到相同问题。

问题出在requirements.txt文件中。我已经使用了命令,

pip freeze > requirements.txt 

然后没有检查结果。原来有许多软件包的右侧带有“ @file ...”。这些是导致错误的原因。我只是删除了“ @file ...”,并用该程序包的特定版本替换了它。

此外,请确保使用来指定psycopg是二进制文件。

psycopg2-binary == 2.8.6

相关问题