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

Streamlit指定依赖版本未生效,为何使用最新库版本?

问题原因与解决方案

你遇到的问题是指定的pandas版本未在Streamlit部署环境中生效,导致应用自动使用了更高版本(pandas 2.0+),而该版本已移除append方法。以下是可能的原因和解决办法:

可能的原因及对应解决步骤

  • 依赖文件未被正确识别
    Streamlit Cloud默认读取项目根目录下的requirements.txt文件。如果你的依赖文件名不是这个,或者文件不在根目录,平台会自动安装兼容的最新版本库。请确保依赖文件命名为requirements.txt,且放置在项目根路径下。

  • 间接依赖冲突
    你指定的其他库可能间接依赖了更高版本的pandas,导致部署时自动升级。可以在本地虚拟环境中执行pip check命令排查依赖冲突,或者修改requirements.txt,明确锁定所有可能引发冲突的依赖版本。例如,如果某库要求pandas>=2.0,你需要找到该库兼容pandas 1.4.2的版本并指定。

  • 部署环境缓存未更新
    Streamlit Cloud可能缓存了旧的依赖环境,没有重新安装指定版本。解决方式:

    • 修改requirements.txt(比如添加一个空行或注释),触发重新部署流程;
    • 进入应用的Streamlit Cloud设置页面,在"高级"选项中点击"清除缓存",再重新部署应用。
  • 本地依赖同步不完整
    本地开发环境的依赖可能未完全同步到部署文件中。建议在本地激活虚拟环境后,执行pip freeze > requirements.txt生成完整的依赖清单,确保所有间接依赖也被锁定。

临时兼容方案

如果暂时无法解决版本问题,可以将代码中的append方法替换为pandas全版本兼容的写法:

# 原代码
df_gantt = df_gantt.append({'Step': i, 'Start': start, 'End': end, 'Duration': duration}, ignore_index=True)

# 替换为
df_gantt = pd.concat([
    df_gantt,
    pd.DataFrame([{'Step': i, 'Start': start, 'End': end, 'Duration': duration}])
], ignore_index=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 20:19:57