省流:对于一些版本比较新的 conda,version.py 文件与本文中使用的不一样,无法用这里的方式解决标题中的问题。
问题描述
在使用 conda
创建环境的时候报错:
$ conda create -n myenv python=3.8
Solving environment: failed
InvalidVersionSpecError: Invalid version spec: =2.7
参考链接
https://github.com/conda/conda/issues/10618
失败尝试
这些是我尝试了但仍旧失败的方案:
- 删除
~/.condarc
文件中带有conda-forge
的一行; conda config --remove channels conda-forge
;conda install --channel defaults conda python=3.6 --yes
;conda update --all
conda update -n base conda
有效的方案
在 conda
的 base
环境中找到下面的文件:
site-packages/conda/models/version.py
- 首先,将其做一个备份;
- 然后,将 version.py 文件的第 396 396 396 行从
version_relation_re = re.compile(r'(==|!=|<=|>=|<|>)(?![=<>!])(\S+)$')
改为
version_relation_re = re.compile(r'(==|!=|<=|>=|<|>|=)(?![=<>!])(\S+)$')
- 之后,将该文件的第 398 398 398 行,从
opdict = {'==': op.__eq__, '!=': op.__ne__, '<=': op.__le__, '=': lambda x, y: x.startswith(y),
改为
opdict = {'==': op.__eq__, '!=': op.__ne__, '<=': op.__le__,
- 最后,尝试创建新环境,成功。