Python pip和conda都安装了相同的软件包

Python pip和conda都安装了相同的软件包,python,pip,conda,package-management,Python,Pip,Conda,Package Management,如果pip和conda在同一环境中安装了相同的软件包,会发生什么情况?康达的设计是为了应对这种情况吗?你能安全地pip卸载pip版本而不弄乱conda版本吗 它们将安装在同一目录中,如/home/user/miniconda/env/envname/lib/python3.6/site packages/requests 因此,如果您同时通过conda和pip安装一个包,然后通过pip卸载它,那么源代码就消失了。这意味着你不能再使用这个软件包了 安装软件包时,pip将检查dist info或eg

如果pip和conda在同一环境中安装了相同的软件包,会发生什么情况?康达的设计是为了应对这种情况吗?你能安全地
pip卸载
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是选定的版本号。

我不知道实际答案,但我认为最好的办法可能是
pip卸载
conda删除
,和
conda install
so
pip uninstall
conda install
提供的安装程序应该在不损害任何下游依赖性的情况下修复问题?@DanielMahler如果您以前也通过
conda install
安装过,我建议您也通过
conda remove
卸载它,因为它会清理conda元数据,而
pip uninstall
不会。