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环境中,它也应该在所有其他环境中都可用-但据我所知,这不是环境的预期行为。
请随时改正我的假设,并给我一些理智!
根据我对 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,我可以确认安装仅在活动环境中完成,并且不适用于其他环境