使用 pip 和 conda 实现一致性的最佳实践
Best practices with pip and conda for consistency
我知道有很多关于 pip
和 conda
的共存和 interchangeability/non-interchangeability 的问题。这不是我的问题:我知道我的工作需要两者,我都使用两者,而且在大多数情况下,我的 conda envs
是一个可以管理的混乱。
但问题是:安装方法有很多种 pip
。我碰巧 conda
先走了,所以我的 pip
通过了 anaconda/bin/pip
。它是我机器上唯一的 pip
。这是我的问题:
- 这合理吗?我是否希望我的
pip
成为 usr/bin/pip
并独立于全局 conda
?感觉不太懂。
- 如果我通过
brew
或 easy_install
安装新的 pip
,我应该通过这个新的 pip
开始下载软件包吗?那会不会很糟糕,把一切都搞砸了?
谢谢!
Pip 始终需要安装 Python 版本,并且与特定的 Python 安装相关联。默认情况下,pip 将其自己的 Python 的软件包安装到 Python 库目录内的相关 site-packages
目录中。此目录的确切位置取决于您的操作系统以及您安装 conda 的方式。
如果您通过 Homebrew 安装 pip 或与 Python 的另一个安装一起安装,则不应使用该 pip 并期望它为 conda 安装。就此而言,如果您创建一个新的 conda 环境,您不应期望该环境中的 pip 会将包安装到另一个环境中。
pip 有一个 --user
选项,它将软件包安装到您用户帐户的目录中(在 *nix 系统上,这是 ~/.local
;我记不起 Windows 这是哪里)。所有具有相同主次版本号的 Python 版本都可以找到这些软件包。但是,不建议以这种方式在多个 Python 之间共享它们来安装包,因为如果不同的 Python 是用不同的编译器编译的,您可能 运行麻烦了。
我知道有很多关于 pip
和 conda
的共存和 interchangeability/non-interchangeability 的问题。这不是我的问题:我知道我的工作需要两者,我都使用两者,而且在大多数情况下,我的 conda envs
是一个可以管理的混乱。
但问题是:安装方法有很多种 pip
。我碰巧 conda
先走了,所以我的 pip
通过了 anaconda/bin/pip
。它是我机器上唯一的 pip
。这是我的问题:
- 这合理吗?我是否希望我的
pip
成为usr/bin/pip
并独立于全局conda
?感觉不太懂。 - 如果我通过
brew
或easy_install
安装新的pip
,我应该通过这个新的pip
开始下载软件包吗?那会不会很糟糕,把一切都搞砸了?
谢谢!
Pip 始终需要安装 Python 版本,并且与特定的 Python 安装相关联。默认情况下,pip 将其自己的 Python 的软件包安装到 Python 库目录内的相关 site-packages
目录中。此目录的确切位置取决于您的操作系统以及您安装 conda 的方式。
如果您通过 Homebrew 安装 pip 或与 Python 的另一个安装一起安装,则不应使用该 pip 并期望它为 conda 安装。就此而言,如果您创建一个新的 conda 环境,您不应期望该环境中的 pip 会将包安装到另一个环境中。
pip 有一个 --user
选项,它将软件包安装到您用户帐户的目录中(在 *nix 系统上,这是 ~/.local
;我记不起 Windows 这是哪里)。所有具有相同主次版本号的 Python 版本都可以找到这些软件包。但是,不建议以这种方式在多个 Python 之间共享它们来安装包,因为如果不同的 Python 是用不同的编译器编译的,您可能 运行麻烦了。