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

Streamlit Authenticator登录报错:form_name参数已被fields替代

问题根源

你的代码没改动但突然报错,是因为streamlit-authenticator依赖包被自动更新到了新版本——新版本废弃了login方法的第二个form_name参数,替换成了fields参数,旧调用方式不再兼容。

两种解决方案

方案1:锁定旧版本(快速恢复)

直接固定之前能用的旧版本,阻止自动升级:

  • 在项目的requirements.txt里添加明确版本号(比如最后支持旧参数的版本,示例:streamlit-authenticator==0.1.5,根据你实际使用的稳定版本调整)
  • 执行重装命令:
pip install streamlit-authenticator==0.1.5

如果是Streamlit Cloud部署,务必确保requirements.txt写死版本,避免平台自动升级依赖。

方案2:适配新版本参数(长期维护)

按照新版本规范修改login方法调用,把原form_name参数替换成fields,同时用location参数指定原main的位置:
修改后的代码片段:

name, authentication_status, username = authenticator.login(
    fields={'Form name': 'Login'},
    location='main'
)

如果需要自定义表单内的标签,也可以扩展fields配置:

name, authentication_status, username = authenticator.login(
    fields={
        'Form name': 'Login',
        'Username': '用户名',
        'Password': '密码',
        'Login': '登录'
    },
    location='main'
)
验证

修改后重启应用,检查登录界面是否正常加载、无报错即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 22:30:19