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

执行Django迁移时遇AttributeError: 'PosixPath'对象无'read'属性

解决Django中environ.Env.read_env()触发的AttributeError: 'PosixPath'对象没有'read'属性问题

这个错误的核心原因是旧版本的python-dotenv(django-environ依赖的底层库)不支持直接传入Path对象,和你切换PostgreSQL/SQLite数据库完全无关,所以换数据库不会解决问题。

给你三个可行的解决办法:

  • 方法一:将Path对象转为字符串
    修改settings.py中的代码,把Path类型的路径转为字符串后传入:

    environ.Env.read_env(str(BASE_DIR / '.env'))
    
  • 方法二:传入打开的文件对象
    用open函数打开.env文件,把文件对象传给read_env方法:

    with open(BASE_DIR / '.env') as env_file:
        environ.Env.read_env(env_file)
    
  • 方法三:升级python-dotenv到兼容版本
    直接升级依赖库,新版本已经支持直接接收Path类型参数:

    pip install --upgrade python-dotenv
    

    升级后,你原来的environ.Env.read_env(BASE_DIR / '.env')代码就可以正常运行了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 09:32:33