conda 是Anaconda 或Miniconda 的包管理器(安装程序和卸载程序)。
pip 是 Python 的包管理器。
根据您的系统环境和其他设置,pip 和 conda 可能会安装到同一个 Python 安装文件夹($PYTHONPATH/Lib/site-packages 或 %PYTHONPATH%\Lib\site-packages)。因此,conda 和 pip 通常可以很好地协同工作。
但是,conda 和 pip 从不同的渠道或网站获取它们的 Python 包。
-
conda从官方频道搜索和下载:https://repo.anaconda.com/pkgs/
-
此软件包由 Anaconda 正式支持,因此在该频道中进行维护。
-
但是,我们可能不会在官方频道中找到所有 Python 包或更新版本的包。这就是为什么有时我们可能会从“conda-forge”或“bioconda”安装 Python 包。这些是由开发人员和其他友好用户维护的非官方渠道。
-
我们可以像这样指定其他频道:
conda install <package1> --channel conda-forge
conda install <package2> --channel bioconda
-
从pypipip 搜索和下载
- 我们应该可以在那里下载所有公开可用的 Python 包。
- 这些包由开发人员和友好用户生成和上传。
- 每个包中的依赖设置可能未经过全面测试或验证。
- 这些包可能不支持较旧或较新版本的 Python。
因此,如果您使用 Anaconda 或 Miniconda,则应使用 conda。如果您无法从官方渠道找到特定的软件包,您可以尝试 conda-forge 或 bioconda。最后从 pypi 获取。
但是,如果您不使用 Anaconda,请坚持使用 pip。
对于高级用户,您可以从他们的源(如 github、gitlab 等)下载最新的库但是有一个问题:
-
一些 Python 包是用纯 Python 编写的。在这种情况下,将这些软件包安装到系统中应该没有问题。
-
一些 Python 包是用 C、C++、Go 等编写的。在这种情况下,您需要
- 为您的系统和 Python 环境(32 位或 64 位版本)提供支持的编译器。
- Python 头文件、可链接的 Python 库和特定于您安装的 Python 版本的档案。 Anaconda 在其安装中包含这些。
我们如何知道 Python 包是否需要特定的编译器?
人们可能不容易发现。但是,您可以通过以下方式(可能是顺序)找到:
-
查看源存储库中的登录页面(或README.nd 或README.txt 文件)。
例如,如果你去Pandas's source repository,它表明它需要cython,因此安装需要一个C编译器。
-
查看源存储库中的setup.py。
比如你去numpy's setup.py,它需要一个C编译器。
-
查看使用需要编译的编程语言(如 C、C++、Go 等)编写的源代码数量。例如,numpy 库使用 35.7% 的 C、1.0% 的 C++ 等编写. 但是,这只是一个指南,因为这些源代码可能只是测试例程。
- 在 stackoverflow 中提问。