You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在AWS Elastic Beanstalk部署Flask应用遇依赖问题求助

解决AWS部署Flask应用的两个依赖问题

问题1:cryptography要求setuptools 18.5或更高版本

你之前尝试的配置文件没生效,大概率是配置文件的路径或格式问题。AWS Elastic Beanstalk的扩展配置需要放在项目根目录的.ebextensions文件夹下,并且要严格遵循YAML缩进格式。

修复步骤:

  1. 在项目根目录创建.ebextensions文件夹(如果还没有的话)
  2. 在该文件夹内新建01_upgrade_setuptools.config文件,内容如下:
commands:
  01_upgrade_setuptools:
    command: "/opt/python/run/venv/bin/pip install --upgrade setuptools>=18.5"
    leader_only: true
  1. 同时,建议在requirements.txt的最顶部添加一行,确保安装cryptography前先升级setuptools:
setuptools>=18.5
cryptography==2.2.2
# 其他依赖...

这样部署时会先升级setuptools,再安装cryptography,就能解决第一个错误了。


问题2:Python3.6下enum模块缺少IntFlag属性

这个问题的核心是:Python3.6已经内置了enum模块,且新增了IntFlag类,但如果环境中存在第三方的enum34包(这个包是给Python3.4之前的版本用的),会覆盖内置的enum,导致找不到IntFlag。

修复方案:

  1. 清理requirements.txt:检查你的requirements.txt,如果有enum34这个依赖,直接删除它。
  2. 强制卸载enum34:在.ebextensions里添加一个前置命令,确保部署时先卸载enum34,再安装依赖。修改或新增02_fix_enum.config文件:
commands:
  01_uninstall_enum34:
    command: "/opt/python/run/venv/bin/pip uninstall -y enum34 || true"
    leader_only: true
  02_install_dependencies:
    command: "/opt/python/run/venv/bin/pip install -r /opt/python/ondeck/app/requirements.txt"
    leader_only: true

(|| true是为了避免如果enum34不存在时命令报错中断部署)
3. 检查间接依赖:如果requirements.txt里没有enum34,但还是被安装了,说明是某个依赖间接引入的。你可以本地运行pip show enum34查看哪个依赖需要它,然后尝试升级该依赖到不再需要enum34的版本。

按照以上步骤操作,应该就能解决这个属性错误了。

内容的提问来源于stack exchange,提问作者cruise_lab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:35:34