在Heroku部署Streamlit应用时遇PyCaret依赖sktime版本匹配错误
解决Heroku部署Streamlit应用时
sktime~=0.11.4找不到的问题 问题原因
PyCaret 3.0.0rc3(候选发布版)依赖的sktime~=0.11.4版本可能已从PyPI索引中移除,或者Heroku默认的pip版本无法检索到该旧版本。
可行解决方案
方案1:升级PyCaret到正式稳定版
rc版本(候选版)的依赖配置通常存在兼容性问题,建议直接切换到PyCaret的正式发布版:
- 修改
requirements.txt中的PyCaret版本为:
(或更高的正式稳定版,如pycaret==3.0.0pycaret==3.3.2) - 重新提交代码并部署到Heroku,正式版会自动适配可用的sktime兼容版本。
方案2:手动指定sktime的可用旧版本
如果必须保留pycaret==3.0.0rc3,可以尝试指定PyPI上仍存在的sktime 0.11.x系列版本:
- 打开
requirements.txt,添加或修改sktime的版本为:
(或sktime==0.11.0sktime==0.11.1、sktime==0.11.2等,这些旧版本仍在PyPI上可查) - 确保PyCaret的版本声明在sktime之后,让pip优先安装指定的sktime版本,再安装PyCaret。
方案3:升级pip版本
Heroku默认的pip版本可能较旧,无法正确检索旧版包,可在requirements.txt开头添加:
pip>=21.0
升级pip后再尝试部署,新版本pip对旧包的检索支持更好。
内容的提问来源于stack exchange,提问作者Aaditya Hamine
相关产品推荐
相关产品推荐

