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

Heroku无法满足tensorflow==2.3.0依赖,Flask部署求助

解决Heroku部署Flask应用时TensorFlow 2.3的依赖问题

你猜的完全正确!Heroku默认使用的老版本pip(9.0.2)不满足TensorFlow 2.x对pip版本的最低要求(至少19.0),所以才会出现找不到TensorFlow 2.3包的错误。下面是几个亲测有效的解决办法:

方法1:在requirements.txt中优先升级pip

如果你的项目用requirements.txt管理依赖,直接在文件最顶部添加升级pip的指令,确保安装TensorFlow前先把pip更新到足够新的版本:

pip>=20.2.2
tensorflow==2.3.0
# 其他依赖...

然后重新推送代码到Heroku,这时候Heroku会先执行pip install --upgrade pip,再安装TensorFlow 2.3,就能解决版本匹配问题了。

方法2:指定高版本Python(推荐)

老版本Python自带的pip版本普遍偏低,通过指定Python 3.8及以上版本,可以直接获得符合要求的pip版本:

  1. 在项目根目录创建runtime.txt文件,内容填写一个稳定的高版本Python,比如:
python-3.8.10
  1. 确保你的requirements.txt或Pipfile中TensorFlow版本指定为2.3.0,重新推送代码。
    Heroku会根据runtime.txt安装对应的Python版本,自带的pip版本会在19.x以上,完全支持TensorFlow 2.3的安装。

方法3:统一用Pipenv管理依赖(避免冲突)

如果你用Pipenv,要避免手动修改requirements.txt导致的依赖不一致问题,按以下步骤操作:

  1. 修改Pipfile,把tensorflow的版本明确指定:
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
flask = "*"
tensorflow = "==2.3.0"
# 其他依赖...

[dev-packages]

[requires]
python_version = "3.8"
  1. 重新生成Pipfile.lock:
pipenv lock
  1. 确保Heroku使用Python buildpack,并且优先读取Pipfile:
heroku buildpacks:set heroku/python
  1. 结合方法2的runtime.txt指定Python 3.8+,推送代码后Heroku会用Pipfile.lock中的配置安装依赖,同时因为Python版本够新,pip也不会是老版本。

额外注意事项

  • 不要同时混用Pipfile和手动编写的requirements.txt,容易出现依赖版本冲突,选一种方式坚持用就好。
  • 如果之前推送过旧的依赖缓存,可以用heroku repo:purge_cache清除缓存,再重新推送,避免缓存导致的安装问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 23:12:30