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

部署Django应用至Railway遇botocore依赖错误(因boto3)

解决方案

1. 对齐本地与部署环境的Python版本

在项目根目录创建 runtime.txt 文件,写入你本地正在使用的Python版本(例如 python-3.10.12),强制Railway使用和本地一致的Python版本。这样botocore的依赖约束会和本地环境匹配,不会触发版本冲突。

2. 明确指定urllib3兼容版本

如果不想调整Python版本,直接在 requirements.txt 中锁定urllib3的版本范围,满足botocore的依赖要求:

urllib3>=1.25.4,<1.27
boto3
# 其他项目依赖

部署时会优先安装符合约束的urllib3版本,解决冲突问题。

3. 用pip-tools锁定全量依赖(推荐)

通过pip-compile生成精确的依赖清单,确保本地和部署环境的依赖完全一致:

  • 安装pip-tools:pip install pip-tools
  • 创建 requirements.in 文件,只列出你的直接依赖:
    boto3
    # 其他项目依赖
    
  • 运行命令生成锁定版本的 requirements.txt:
    pip-compile requirements.in
    
  • 部署时使用生成的 requirements.txt 安装依赖,彻底消除跨环境的版本差异。

报错根源

本地Python版本≥3.10时,botocore对urllib3的约束是<2.0;但Railway使用的Python版本<3.10,对应的botocore版本要求urllib3必须在1.25.4~1.27区间内。你的依赖清单未指定urllib3版本,导致部署时安装了超出范围的版本,触发依赖冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 18:15:56