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

conda env export导出环境报AttributeError: module 'attr' has no attribute 's'

问题描述

当前运行环境信息:

  • 操作系统:Ubuntu 20.04.4,内核版本5.13.0-44-generic
  • Conda版本:4.13.0

执行命令conda env export -n torch > torch.yml导出名为torch的conda虚拟环境时,触发如下AttributeError报错:

File "/home/onatgirit/anaconda3/bin/conda-env", line 6, in <module>
    from conda_env.cli.main import main
  File "/home/onatgirit/anaconda3/lib/python3.8/site-packages/conda_env/cli/main.py", line 44, in <module>
    from . import main_create
  File "/home/onatgirit/anaconda3/lib/python3.8/site-packages/conda_env/cli/main_create.py", line 20, in <module>
    from .. import specs
  File "/home/onatgirit/anaconda3/lib/python3.8/site-packages/conda_env/specs/__init__.py", line 15, in <module>
    from .notebook import NotebookSpec
  File "/home/onatgirit/anaconda3/lib/python3.8/site-packages/conda_env/specs/notebook.py", line 5, in <module>
    import nbformat
  File "/home/onatgirit/anaconda3/lib/python3.8/site-packages/nbformat/__init__.py", line 11, in <module>
    from . import v1, v2, v3, v4
  File "/home/onatgirit/anaconda3/lib/python3.8/site-packages/nbformat/v4/__init__.py", line 39, in <module>
    from .convert import downgrade, upgrade
  File "/home/onatgirit/anaconda3/lib/python3.8/site-packages/nbformat/v4/convert.py", line 13, in <module>
    from .. import validator
  File "/home/onatgirit/anaconda3/lib/python3.8/site-packages/nbformat/validator.py", line 13, in <module>
    from .json_compat import ValidationError, _validator_for_name, get_current_validator
  File "/home/onatgirit/anaconda3/lib/python3.8/site-packages/nbformat/json_compat.py", line 11, in <module>
    import jsonschema
  File "/home/onatgirit/anaconda3/lib/python3.8/site-packages/jsonschema/__init__.py", line 12, in <module>
    from jsonschema._format import (
  File "/home/onatgirit/anaconda3/lib/python3.8/site-packages/jsonschema/_format.py", line 10, in <module>
    from jsonschema.exceptions import FormatError
  File "/home/onatgirit/anaconda3/lib/python3.8/site-packages/jsonschema/exceptions.py", line 158, in <module>
    @attr.s(hash=True)
AttributeError: module 'attr' has no attribute 's'

后续尝试导出其他conda虚拟环境时均触发相同报错。

排查信息

执行排查命令获取到如下信息:

  1. 执行conda info输出:
shell level : 0
       user config file : /home/onatgirit/.condarc
 populated config files : /home/onatgirit/.condarc
          conda version : 4.13.0
    conda-build version : 3.20.5
         python version : 3.8.13.final.0
       virtual packages : __cuda=11.6=0
                          __linux=5.13.0=0
                          __glibc=2.31=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /home/onatgirit/anaconda3  (writable)
      conda av data dir : /home/onatgirit/anaconda3/etc/conda
  conda av metadata url : None
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /home/onatgirit/anaconda3/pkgs
                          /home/onatgirit/.conda/pkgs
       envs directories : /home/onatgirit/anaconda3/envs
                          /home/onatgirit/.conda/envs
               platform : linux-64
             user-agent : conda/4.13.0 requests/2.27.1 CPython/3.8.13 Linux/5.13.0-44-generic ubuntu/20.04.4 glibc/2.31
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False
  1. 执行conda list -n base '(nbformat|jsonschema|attr)'查看base环境相关依赖版本,输出如下:
#
    # Name                    Version                   Build  Channel
    attrs                     21.4.0             pyhd3eb1b0_0  
    jsonschema                4.4.0            py38h06a4308_0  
    nbformat                  5.3.0            py38h06a4308_0  
    python-fastjsonschema     2.15.1             pyhd3eb1b0_0

base环境内安装的attrs 21.4.0版本本身是兼容的,不存在版本不匹配问题。
3. 执行conda run -n base python -c 'import attr; print(attr.__spec__)'检查attr模块加载路径,输出如下:

当前加载的attr模块来自用户本地目录下的独立文件,并非conda base环境内安装的attrs包。

故障原因

Python导入模块时,用户目录下~/.local/lib/python3.8/site-packages/的搜索优先级高于conda环境的site-packages路径。本地残留的attr.py文件和正规attrs库的模块名重名,直接覆盖了conda环境内的正常attr模块,这个残留文件没有定义s属性,因此jsonschema调用@attr.s()装饰器时抛出属性错误。
之前尝试pip卸载、重装attrs包没有效果,是因为pip操作的是环境内安装的正规包,没有处理本地这个冲突的残留py文件。

修复步骤
  1. 处理冲突文件,直接重命名备份或者删除即可:
# 备份方案,避免误删需要的文件
mv /home/onatgirit/.local/lib/python3.8/site-packages/attr.py /home/onatgirit/.local/lib/python3.8/site-packages/attr.py.bak

# 确认文件无用可以直接删除
# rm /home/onatgirit/.local/lib/python3.8/site-packages/attr.py
  1. 清理对应pyc缓存,避免缓存影响加载:
rm -rf /home/onatgirit/.local/lib/python3.8/site-packages/__pycache__/attr*
  1. 验证修复结果,执行命令检查attr模块加载路径:
conda run -n base python -c 'import attr; print(attr.__file__)'

如果输出路径指向/home/onatgirit/anaconda3/lib/python3.8/site-packages/attr/目录下的文件,说明模块加载恢复正常,此时再执行conda env export系列命令就不会再报相同错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 22:51:07