安装Ubuntu后python-dotenv调用load_dotenv()报encoding参数意外错误怎么办
报错排查与解决指南
报错根因
TypeError: load_dotenv() got an unexpected keyword argument 'encoding'
该报错由python-dotenv版本不匹配导致:encoding参数是在python-dotenv 0.15.0版本才正式新增的调用参数,你当前安装的版本低于0.15.0时,传入encoding参数就会触发该异常。
排查步骤
- 执行如下命令确认当前安装的
python-dotenv版本:pip3 show python-dotenv
查看返回结果中的Version字段,若版本号低于0.15.0即可确认是版本过低问题。 - 检查代码中
load_dotenv()的调用逻辑,确认是否存在显式传入encoding参数的写法,例如load_dotenv(encoding='utf-8')。
解决方案
根据你的使用场景二选一即可:
方案1:升级python-dotenv到兼容版本
直接执行升级命令安装最新版的python-dotenv,无需修改原有代码:pip3 install --upgrade python-dotenv
升级完成后版本会高于0.15.0,即可正常识别encoding参数。
方案2:移除调用时的encoding参数
如果因为其他依赖兼容性要求不能升级python-dotenv,可以直接删除load_dotenv()调用中的encoding参数,包会默认使用系统当前编码读取.env文件,也可解决报错。
内容的提问来源于stack exchange,提问作者Nobie
相关产品推荐
相关产品推荐

