繁体   English   中英

由pip和conda安装的相同包

[英]same package installed by both pip and conda

如果在同一环境中pip和conda同时安装了相同的软件包,会发生什么? conda是为了应对这个吗? 你可以安全地pip uninstall pip版本而不会弄乱conda版本吗?

它们将安装在同一目录中,例如/home/user/miniconda/env/envname/lib/python3.6/site-packages/requests

因此,如果您通过conda和pip安装包,然后通过pip卸载它,源代码已经消失。 这意味着你不能再使用这个包了。

安装软件包时,pip将检查dist-info或egg-info目录,而conda将检查conda-meta目录。 在这种情况下,如果先通过pip安装,然后通过conda安装,则可以通过conda和pip安装相同的软件包。 在相反的情况下,pip将考虑已经安装了该软件包。

要完全卸载由conda和pip安装的软件包,您需要同时运行conda remove以删除conda-meta和pip uninstall中的信息以删除dist-info目录。

根据Anaconda网站上的这篇文章 ,它取决于安装的软件包。

当conda和pip一起用于创建环境时会出现问题,尤其是当工具背靠背多次使用时,建立一个难以重现的状态。 大多数问题源于这样一个事实,即conda与其他软件包管理器一样,控制未安装的软件包的能力有限。 在pip之后运行conda有可能覆盖并可能破坏通过pip安装的软件包。 同样,pip可以升级或删除conda安装的软件包所需的软件包。 在某些情况下,这些破损是装饰性的,其中存在应该被移除的一些文件,但在其他情况下,环境可能演变成不可用的状态。

您可以删除安装的软件包,如第一个答案中所示。 但是环境可以恢复到以前的版本,以便通过使用conda和pip来消除所做的损害,如果有的话。

要列出每个更改到当前环境的历史记录,请使用conda list --revisions并将其还原到以前的版本,使用conda install --revision 2 ,其中2是选定的修订版号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM