You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Flask-Login 与 Heroku 构建失败求助:Python依赖安装问题

解决Heroku构建时Python依赖(tar.gz安装)的问题

嘿,作为Python和Heroku新手碰到这种依赖安装问题太正常了,我帮你梳理几个实用的解决方向,先把你遇到的错误信息贴出来方便参考:

-----> Python app detected
-----> Installing pip
-----> Installing requirements with pip
Collecting Flask-Login (from -r /tmp/build_f4f549a18e5f1258bbac763cc70b38dd/requirements.txt (line 13))
Downloading Flask-Login-0.4.1.tar.gz
Complete output from command python setup.py egg_info:
/app/.hero...

接下来是具体的解决步骤:

  • 优先使用PyPI标准依赖写法:如果你的requirements.txt里直接写了Flask-Login-0.4.1.tar.gz,建议改成Flask-Login==0.4.1。Heroku的pip会优先拉取PyPI上的预编译wheel包,比手动指定tar.gz更稳定,还能避免tar包下载或解压时的各种意外问题。
  • 如果必须用tar.gz包
    • 确保tar.gz的链接是公开可访问的;要是是自定义本地包,就把它放到项目目录里(比如新建一个vendor文件夹),然后在requirements.txt里用相对路径引用,比如./vendor/Flask-Login-0.4.1.tar.gz,同时别把这个包加到.gitignore里,确保Heroku能拉到这个文件。
  • 指定兼容的Python版本:在项目根目录新建runtime.txt文件,写上你本地测试用的Python版本,比如python-3.9.16(要符合Heroku官方支持的版本列表),避免Heroku自动选择的Python版本和你本地不一致,导致setup.py执行失败。
  • 本地先验证安装:在本地虚拟环境里运行pip install -r requirements.txt,如果本地也报错,那问题大概率不在Heroku——要么是包本身依赖缺失(比如Flask-Login需要特定版本的Flask,得确保requirements.txt里也正确列了Flask),要么是tar包本身损坏了。
  • 检查系统编译依赖:如果错误是setup.py编译阶段出现的(比如缺gcc、libffi这类系统库),可以在项目根目录新建Aptfile,里面写上需要的系统包(比如gcclibffi-dev),Heroku会先安装这些系统依赖,再处理Python包的安装。

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

火山引擎 最新活动