conda环境中conda和pip安装之间的区别

Kei*_*ons 5 python pip package-managers anaconda conda

最近,我开始使用conda环境(Anaconda),我似乎在问自己很多问题,但是我最终还是使用Google搜索了,而且步步不为近。

我现在在自己的conda环境中运行所有项目,因为我希望将所有内容保持独立,并且对其他程序的依赖性尽可能小。例如,最近的环境:

conda create -n RL numpy tensorflow-gpu
Run Code Online (Sandbox Code Playgroud)

然后,我激活环境,并意识到“哦-我忘了安装健身室”。在这种情况下,这仅在PIP包管理器中可用,因此我只需键入即可pip install gym。但是在其他情况下,如果该软件包位于conda和pip中,则安装它的最佳方法是什么?

conda install package pip install package

或者换句话说-有什么区别?

为了提供完整的图片,我正在Ubuntu 16.04中运行所有程序,并根据项目在python 2和3之间切换。所以我的一些conda环境在python 2中,有些在python 3中。我发现有时pip3 installpython 3需要a ,但并非总是如此-为什么?

其次,我的路径链接到我的Anaconda3目录中的python设置。

我当前的想法是,如果我通过安装conda,它会直接安装到我的环境中,但是通过pip它会安装到anaconda3站点程序包,从而使它可用于我的Anaconda3目录下的所有conda环境。如果是这种情况,这意味着如果我pip install gym在一个conda环境中,它也应该在所有其他环境中都可用-但据我所知,这不是环境的预期行为。

请随时改正我的假设,并给我一些理智!

Nat*_*han 3

根据我对 Conda 的理解,它为您管理所有依赖项。例如,如果您有一个包(如 pandas)需要另一个包(如 numpy),它将下载这两个包(在警告您之后)。

conda 变得方便的地方是,有时一个特定的包需要另一个包的特定版本(例如 4.3 或更高版本),并且它们可能会在包之间发生冲突。要求和冲突定义了一个可以通过 SAT 求解器解决的数学问题。

您可以在这里找到相关信息和链接: https: //www.continuum.io/blog/developer/new-advances-conda-0

因此,每次安装新软件包时,它都会升级(如果冲突,有时会降级)其他软件包,以确保每个软件包的功能。就我个人而言,我仅在软件包不受管理时才conda使用pipconda

如果您对 conda 感兴趣,另一个链接:https://jakevdp.github.io/blog/2016/08/25/conda-myths-and-misconceptions/

About pip3,这是同时安装Python 2和Python 3时使用的命名,以避免命令冲突。在 python 3 环境中,该命令pip相当于pip3.

对于 的行为pip,我可以确认安装仅在活动环境中完成,并且不适用于其他环境