列出虚拟环境列表命令:conda info -e 或者conda env list
conda info -e 这个可以正常显示,conda env list却报错了,以前是没有问题的,因为这个命令我更习惯使用,所以这个小问题必须解决掉,或许其他读者可能也会遇到同样的错误:
Traceback (most recent call last):
File "D:\Anaconda3\Scripts\conda-env-script.py", line 6, in <module>
from conda_env.cli.main import main
File "D:\Anaconda3\lib\site-packages\conda_env\cli\main.py", line 37, in <module>
from . import main_attach
File "D:\Anaconda3\lib\site-packages\conda_env\cli\main_attach.py", line 2, in <module>
from ..utils.notebooks import Notebook
File "D:\Anaconda3\lib\site-packages\conda_env\utils\notebooks.py", line 5, in <module>
import nbformat
File "D:\Anaconda3\lib\site-packages\nbformat\__init__.py", line 33, in <module>
from .validator import validate, ValidationError
File "D:\Anaconda3\lib\site-packages\nbformat\validator.py", line 12, in <module>
from jsonschema import ValidationError
File "D:\Anaconda3\lib\site-packages\jsonschema\__init__.py", line 11, in <module>
from jsonschema.exceptions import (
File "D:\Anaconda3\lib\site-packages\jsonschema\exceptions.py", line 152, in <module>
@attr.s(hash=True)
AttributeError: module 'attr' has no attribute 's'
错误的原因是模块attr没有属性s,于是将含有attr的文件打开,比如exceptions.py,_types.py将里面的@attr.s(hash=True)和_cause = attr.ib()等相关都注释看下效果,不出所料这样就会出现新的错误,比如TypeError: object() takes no parameters
所以这种简单注释掉的方法不可行,排除。
然后查看Anaconda3\Lib\site-packages里面,有包含attr和attrs这两个目录,也就是说这两个模块都是有安装的。
难道是attr模块没有属性s吗?也不是这个原因,因为以前是可以正常使用的。我们也可以加载模块,查看下就明白了:
import attr
dir(attr)
#['Attribute', 'Factory', 'NOTHING', 'VersionInfo', '__all__', '__author__', '__builtins__', '__cached__', '__copyright__', '__description__', '__doc__', '__email__', '__file__', '__license__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__title__', '__uri__', '__url__', '__version__', '__version_info__', '_cmp', '_compat', '_config', '_funcs', '_make', '_next_gen', '_version_info', 'absolute_import', 'asdict', 'assoc', 'astuple', 'attr', 'attrib', 'attributes', 'attrs', 'cmp_using', 'converters', 'dataclass', 'define', 'division', 'evolve', 'exceptions', 'field', 'fields', 'fields_dict', 'filters', 'frozen', 'get_run_validators', 'has', 'ib', 'make_class', 'mutable', 'partial', 'print_function', 'resolve_types', 's', 'set_run_validators', 'setters', 'sys', 'validate', 'validators']
可以看到这个里面是有s和ib方法的
那只能是后期经常有安装和更新新的东西造成的。于是将这两个模块给卸载掉,然后重新安装:
pip uninstall attr
pip uninstall attrs
pip install attrs
问题解决了,恩,对于这种类似模块缺少属性等错误,或许重新安装模块是最快捷的,当然有些错误,更多的可能是版本兼容问题,这个需要注意。
其他关于conda的使用,比如最开始下载安装Anaconda之后的第一步,想修改地址,容易忘记.condarc文件在哪个地方:
可以输命令:conda info
这样就将conda的版本与配置相关信息显示出来了:
另外就是创建虚拟环境是最重要的一个功能,这里也重复贴出来,方便大家更熟知:
conda create -n xxx python=yyy
比如指定Python版本为3.7,虚拟环境名称为tf: conda create -n tf python=3.7
创建虚拟环境好了之后,可以通过上面的命令查看你的系统创建了多少个虚拟环境,想要进入到哪个虚拟环境,输入命令激活即可:activate xxx
当然如果conda版本在4.4以上,命令为:conda activate xxx
虽然是一个比较小的问题,同样的在解决问题的过程中,也是会有新的收获!