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

无法在Railway部署Django项目,构建阶段报UTF-8无效错误

解决Railway部署Django时的‘stream did not contain valid UTF-8’构建错误

排查方向1:检查requirements.txt编码格式

  • 用文本编辑器打开requirements.txt,确认文件编码为UTF-8(无BOM)。部分工具生成的文件可能自带GBK等其他编码,会导致Railway读取时出错。Windows环境生成的文件建议用Notepad++转成UTF-8无BOM格式后再上传。

排查方向2:清理依赖中的异常内容

  • 检查requirements.txt内是否存在带特殊字符的包名、版本号,或本地安装的非公开/自定义包(这类包在Railway拉取时可能返回非UTF-8内容)。
  • 先尝试用最简依赖部署验证,比如只保留核心依赖:
    Django>=4.2,<5.0
    gunicorn>=20.1.0
    psycopg2-binary>=2.9.9
    

排查方向3:强制构建环境使用UTF-8编码

  • 在Railway构建配置中添加环境变量:LC_ALL=en_US.UTF-8、LANG=en_US.UTF-8。
  • 修改构建命令,在pip安装前明确指定编码:
    export LC_ALL=en_US.UTF-8 && export LANG=en_US.UTF-8 && pip install -r requirements.txt
    

排查方向4:检查项目文件的编码问题

  • 项目中的Python文件、模板、静态资源若包含非UTF-8编码的特殊字符,也可能触发流读取错误。
  • 用file命令(Linux/macOS)扫描文件编码:
    file --mime-encoding */*.py
    
    找到非UTF-8文件后转码即可。

排查方向5:优化依赖生成方式

  • 放弃自动生成工具,手动编写requirements.txt,只保留生产必需的公开依赖,将开发依赖(如pytest、black)单独放到requirements-dev.txt,部署时不安装。
  • 若使用pip freeze,添加参数排除本地可编辑包:
    pip freeze --exclude-editable > requirements.txt
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 02:41:27