如何在anaconda中修复损坏的点子,而又不删除依赖包?

时间:2018-10-15 20:36:29

标签: pip conda miniconda

当我尝试使用pip安装某些东西时,会收到消息

You are using pip version 18.0, however version 18.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

但是,当我按照此处的建议操作时,我会得到:

  

使用缓存收集点   https://files.pythonhosted.org/packages/c2/d7/90f34cb0d83a6c5631cf71dfe64cc1054598c843a92b400e55675cc2ac37/pip-18.1-py2.py3-none-any.whl   例外:追溯(最近一次呼叫最近):文件   “ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_vendor/pkg_resources/init.py”,   _dep_map中的第2862行       返回自己。 dep_map文件“ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init.py”,   第2669行,位于 getattr       引发AttributeError(attr)AttributeError:_DistInfoDistribution__dep_map

     

在处理上述异常期间,发生了另一个异常:

     

回溯(最近通话最近):文件   “ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_vendor/packaging/requirements.py”,   第93行,初始化       req = REQUIREMENT.parseString(requirement_string)文件“ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_vendor/pyparsing.py”,   第1632行,在parseString中       提高exc文件“ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_vendor/pyparsing.py”,   第1622行,在parseString中       loc,令牌= self._parse(instring,0)文件“ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_vendor/pyparsing.py”,   _parseNoCache中的第1379行       loc,tokens = self.parseImpl(instring,preloc,doActions)文件“ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_vendor/pyparsing.py”,   在parseImpl中的第3395行       loc,exprtokens = e._parse(instring,loc,doActions)文件“ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_vendor/pyparsing.py”,   _parseNoCache中的第1383行       loc,tokens = self.parseImpl(instring,preloc,doActions)文件“ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_vendor/pyparsing.py”,   在parseImpl中的第3183行       引发ParseException(instring,loc,self.errmsg,self)pip._vendor.pyparsing.ParseException:预期的stringEnd(位于char 33),   (行:1,列:34)

     

在处理上述异常期间,发生了另一个异常:

     

回溯(最近通话最近):文件   “ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_vendor/pkg_resources/init.py”,   第2942行,在 init 中       超级(需求,自我)。初始化(requirement_string)文件“ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_vendor/packaging/requirements .py”,   第97行,初始化       require_string [e.loc:e.loc + 8]))pip._vendor.packaging.requirements.InvalidRequirement:无效   要求,解析错误为“';多余的'”

     

在处理上述异常期间,发生了另一个异常:

     

回溯(最近通话最近):文件   “ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_internal/basecommand.py”,   228号线,在主要       status = self.run(options,args)文件“ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_internal/commands/install.py”,   318行,正在运行       self._warn_about_conflicts(to_install)文件“ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_internal/commands/install.py”,   _warn_about_conflicts中的第442行       package_set,_dep_info = check_install_conflicts(to_install)文件   “ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_internal/operations/check.py”,   第89行,在check_install_conflicts中       状态= create_package_set_from_installed()文件“ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_internal/operations/check.py”,   第39行,位于create_package_set_from_installed中       retval [name] = PackageDetails(dist.version,dist.requires())文件   “ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_vendor/pkg_resources/init.py”,   第2613行,在require中       dm = self._dep_map文件“ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_vendor/pkg_resources/init.py”,   _dep_map中的第2864行       self。 dep_map = self._compute_dependencies()文件“ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init.py ”,   第2874行,在_compute_dependencies中       reqs.extend(parse_requirements(req))文件“ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_vendor/pkg_resources/init.py ”,   第2935行,在parse_requirements中       产量要求(行)文件“ /home/.../miniconda3/envs/py3/lib/python3.6/site-packages/pip/_vendor/pkg_resources/init.py”,   第2944行,在 init 中       引发RequirementParseError(str(e))pip._vendor.pkg_resources.RequirementParseError:无效的需求,   在“';额外'”处解析错误,但是您使用的是pip版本18.0   版本18.1可用。您应该考虑通过“点子”进行升级   安装--upgrade pip'命令。

我尝试了conda install pip并没有帮助。当我尝试conda remove pip时,它想删除所有相关的软件包,这并不是我真正想要的。知道如何在不破坏环境的情况下进行修复吗?

1 个答案:

答案 0 :(得分:0)

此特定问题是由testpath引起的。我使用pip remove testpath删除了该软件包,然后可以更新pip而不会出错。不幸的是,错误消息并没有指向我那里。我在GitHub问题页面上找到了该解决方案。

https://github.com/conda-forge/testpath-feedstock/issues/7