eb部署错误'Your requirements.txt无效'(Python应用)

问题描述 投票:0回答:1

我有一个在ElasticBeanstalk Python 2.7平台上部署的Django 1.11应用程序。更新了我的一些要求后,似乎pip在EB上失败了。很奇怪,因为它可以在我的本地Python 2.7.16 env(默认为MacOS 10.15.1)上运行。

这是EB应用程序日志中显示的错误:

[[Instance:i-07622227350cdbc48]命令在实例上失败。返回代码:1输出:(TRUNCATED)...)文件“ /usr/lib64/python2.7/subprocess.py”,第541行,在check_call中引发CalledProcessError(retcode,cmd)CalledProcessError:命令'/ opt / python / run / venv / bin / pip install -r /opt/python/ondeck/app/requirements.txt'返回非零退出状态1.钩子/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py失败。有关更多详细信息,请使用控制台或EB CLI检查/var/log/eb-activity.log。

python python-2.7 pip amazon-elastic-beanstalk ebcli
1个回答
0
投票

[好,我进入eb-activity.log,发现几行提到了exit status 1的原因。特别是:

...
error in enum-compat setup command: 'install_requires' must be a string or list of strings containing valid project/version requirement specifiers; Expected version spec in enum34; python_version < "3.4" at ; python_version < "3.4"

----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-0u2vRJ/enum-compat
You are using pip version 7.1.2, however version 20.0.2 is available.
...

[经过四处搜寻,我意识到这与以下问题有关:https://github.com/jstasiak/enum-compat/pull/4enum-compat是我的项目要求之一,intuit-oauth)。如该setuptools所述,对该问题的修复导致comment的较旧版本在安装时损坏。

这意味着pip!正如上面的日志片段所示,由于某些原因EB使用漂亮的old versions

。没问题,但可以。

[幸运的是,针对EB的我的Python应用程序平台(64位Amazon Linux 2018.03 v2.9.4)提供了一个更新,尽管仅上升到pip 9(20个...),但足以解决此问题。我。否则,我将不得不使用preinit钩子(通过.ebextensions files字段)来升级pip,或类似的烦人的事情。

但是,由于las部署失败,因此平台升级也无法正常进行。我不得不重新部署仍然可以正常工作的旧版本,然后升级Python平台,然后再次部署我的新代码。

我也建议使用此答案来调试其他类似问题:https://stackoverflow.com/a/47093980/761963

© www.soinside.com 2019 - 2024. All rights reserved.