基本上,我想知道这两个片段是否做同样的事情:
conda install -n myEnv myPackage
VS
conda activate myEnv
pip install myPackage
或者以另一种方式,激活conda环境时是否pip install
等于在myEnv上执行conda install
?
编辑:我认为这很明显,但是=>更准确地说,第二个片段是否仅将软件包安装在环境或整个系统上?
PS:询问是因为pip有一个软件包,但conda没有,我希望仅将其安装在myEnv上
答案 0 :(得分:2)
Anaconda docs明确指出,如果您使用conda
作为虚拟环境管理器,则应坚持使用conda install
来尽可能地安装新软件包:
不幸的是,将conda和pip一起使用时可能会出现问题 创建环境,尤其是在使用工具时 背靠背多次,建立了一个很难做到的状态 复制。 …在点子之后运行conda有潜力 覆盖并可能破坏通过pip安装的软件包。同样, pip可能会升级或删除由conda安装的软件包的软件包 要求。
如果您无法从conda频道中获取所需的所有软件包,他们会这样说,即使您不使用pip,这也是一个很好的建议:
如果希望同时使用pip安装软件 conda软件包是将此安装安装到 专用的conda环境,可保护其他环境免受任何损害 点子可能会进行的修改。
最后是相同的文档注释:
使用conda环境进行隔离
- 创建一个conda环境以隔离点子所做的任何更改
- 由于硬链接,环境几乎不占空间
- 应注意避免在“根”环境中运行pip
首先activate
为您提供了正确的conda环境,pip install
命令应使用该环境的pip
并仅安装到该环境中。
答案 1 :(得分:0)
是,不是。
pip
从PyPI下载并安装软件包,而conda
从Anaconda存储库中下载并安装软件包。
有PyPI
中的软件包没有出现在Anaconda中,反之亦然。
对于管理环境,我会选择一种方式,因为使用pip可以冻结到requirements.txt(pip freeze > requirements.txt
)和conda中,您可以导出整个环境(conda env export
)或列表包(conda list --export > requirements.txt
)。但是,如果您尝试使用pip中的conda生成的文件,则很可能会失败。