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

部署Django应用到AWS Elastic Beanstalk出现setuptools_rust模块缺失错误

问题原因
  1. cryptography 3.4及以上版本引入了Rust编写的核心模块,源码编译安装时必须依赖setuptools_rust组件。
  2. AWS Elastic Beanstalk默认Python运行环境的内置pip、setuptools版本偏低,未预装setuptools_rust,且部署时会按requirements.txt的顺序安装依赖,编译cryptography时还未安装对应的依赖组件就会触发错误。
  3. 本地开发环境如果是Windows/macOS,pip通常会直接下载预编译的cryptography wheel包,不需要本地编译,因此不会触发该错误,只有在需要源码编译的Linux部署环境才会暴露问题。
解决方案
  • 方案1:调整requirements.txt依赖顺序
    把依赖构建工具放在requirements.txt的最开头,确保安装cryptography前先装好编译需要的组件:
    pip>=21.0
    setuptools>=50.0.0
    setuptools_rust>=1.1.2
    # 后续再写其他依赖,例如Django、cryptography、requests等
    
  • 方案2:锁定无Rust依赖的旧版本cryptography
    如果业务不需要使用cryptography 3.4+的新特性,可以指定安装最后一个无需Rust编译的稳定版本,直接跳过编译依赖要求:
    cryptography==3.3.2
    
    注意:该版本已停止安全补丁更新,仅适合临时测试使用,生产环境优先选择其他方案。
  • 方案3:添加EB前置部署配置
    在项目根目录创建.ebextensions文件夹,新增01_install_build_deps.config配置文件,在部署依赖安装前先升级构建工具和系统依赖:
    packages:
      yum:
        gcc: []
        openssl-devel: []
        libffi-devel: []
    commands:
      01_upgrade_build_tools:
        command: /opt/python/run/venv/bin/pip install --upgrade pip setuptools setuptools_rust
        ignoreErrors: false
    
    该方案会在每次部署时优先升级虚拟环境内的构建工具,同时安装编译cryptography需要的系统依赖,兼容性最好,适合生产环境使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:09:04