conda&pip&pip3&virtualenv
If you have used pip and virtualenv in the past, you can use conda to perform all of the same operations. Pip is a package manager and virtualenv is an environment manager. conda is both.
Scroll to the right to see the entire table.
| Task | Conda package and environment manager command | Pip package manager command | Virtualenv environment manager command |
|---|---|---|---|
| Install a package |
|
| X |
| Update a package |
|
| X |
| Update package manager |
| Linux/macOS: | X |
| Uninstall a package |
|
| X |
| Create an environment |
| X |
|
| Activate an environment |
| X |
|
| Deactivate an environment |
| X |
|
| Search available packages |
|
| X |
| Install package from specific source |
|
| X |
| List installed packages |
|
| X |
| Create requirements file |
|
| X |
| List all environments |
| X | Install virtualenv wrapper, then |
| Install other package manager |
|
| X |
| Install Python |
| X | X |
| Update Python |
| X | X |
conda&pip
一定一定养成多看官网documentation的习惯!!
conda documentation:
Conda Documentation — conda 25.3.1 documentation
pip documentation:
| conda | pip | |
| 主要用途 | 跨平台的环境和包管理(支持非Python包) | Python 包安装和管理 |
| 语言支持 | 支持多种语言(python,C++,R等) | 仅限 Python |
| 默认渠道 | Anaconda仓库(defaults) | PyPI (Python Package Index) |
| 其他渠道 | conda-forge、bioconda等 | 可指定其他索引(如私有仓库) |
| 安装速度 | 较慢(依赖解析复杂) | 较快(轻量级) |
| 环境隔离 | 内置(conda create -n env_name) | 依赖 venv 或 virtualenv |
| 创建环境 | conda create -n my_env python=3.8 | python -m venv my_env + pip install |
| 导出环境 | conda env export > environment.yaml | pip freeze > requirements.txt |
1,conda和pip都支持多种操作系统(Linux,maxOS,Windows)
2,conda安装的python和系统的python的区别?
在Linux或macOS系统中 :
(1)系统Python通常由系统包管理器安装,路径为/usr/bin/python3或 /usr/local/bin/python3,属于系统级环境,修改或删除可能影响系统工具。
(2)Conda Python安装在conda环境目录下(如~/miniconda3/envs/my_env/bin/python)。完全独立于系统Python,每个conda环境有独立的Python和库,避免冲突。
Windows系统默认不预装Python,除非主动安装或通过某些工具。
3,conda channel默认是defaults,但默认软件包不太全,所以可以选择使用conda-forge
conda-forge is a community effort that provides conda packages for a wide range of software.
conda-forge documentation:
A brief introduction | conda-forge | community-driven packaging for conda
4,安装包的时候使用pip还是conda?
在安装Python包时,pip和conda可以混用,但需要谨慎操作,以避免环境冲突
混用的潜在风险
-
依赖冲突:
Conda和pip的依赖解析机制不同,混用可能导致:-
同一包被重复安装(不同版本)。
-
依赖树不一致,引发运行时错误。
-
-
环境破坏:
某些包在Conda中是特制的(如mkl优化的NumPy),用pip覆盖后可能导致性能下降或崩溃。 -
难以复现:
混合安装会使环境难以通过conda list或pip freeze完整记录
使用建议:
- 优先使用Conda:尤其是科学计算包(如NumPy、Pandas),Conda通常会提供预编译的优化版本
- 仅在必要时用pip:当包不在Conda仓库中(如某些小众库),再用pip
如果混用后出现问题:
首先检查冲突:
conda list
pip list
查看是否有同一包的多个版本。
然后重新安装:
用Conda重新安装被pip修改的核心包:
conda install --force-reinstall numpy
5,在使用pip和conda命令时,经常用到的镜像源是怎么回事?
- 在使用
pip install package -i 镜像源时,镜像源是第三方服务器对 PyPI(Python Package Index)的完整或部分拷贝,通常位于地理位置更近或网络条件更好的服务器上,避免直接从官方 PyPI(可能位于国外)下载导致的网络延迟。 -i或--index-url参数显式指定 pip 使用的包索引地址(即镜像源 URL)- Conda 同样支持使用镜像源,如:
conda install numpy -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
-c 参数指定包的来源通道(镜像源地址)
- Conda 会按 channels 列表顺序搜索包,可以将镜像源通道放在首位
#查看当前通道顺序
conda config --show channels
'''
输出可能是:
channels:
- defaults
- conda-forge'''
# 修改通道顺序(将镜像源置顶)
# 清空现有通道
conda config --remove-key channels
# 按优先级顺序添加(镜像源优先)
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --add channels conda-forge # 其他通道
#验证通道顺序
conda config --show channels
'''channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- conda-forge
- defaults'''
pip&pip3
pip 和 pip3 都是 Python 的包管理工具,用于安装和管理第三方库。它们的区别主要与 Python 的版本相关:
1. Python 版本对应关系
-
pip:通常关联到系统默认的 Python 版本。如果系统默认是 Python 2,pip会安装 Python 2 的包;如果默认是 Python 3,则安装 Python 3 的包。 -
pip3:明确指定用于 Python 3,无论系统默认版本是什么,它只会安装 Python 3 的包。
2. 使用场景
-
在 Python 2 和 Python 3 共存的系统中:
-
pip可能指向 Python 2(取决于系统配置)。 -
pip3明确指向 Python 3。
-
-
在 只有 Python 3 的系统中:
-
pip和pip3通常是等价的(都指向 Python 3)。
-
3. 现代系统的实际情况
-
自 2020 年 Python 2 官方支持终止后,大多数系统已不再预装 Python 2。此时
pip和pip3通常指向相同的 Python 3 环境。 -
通过
python -m pip或python3 -m pip可以更精确地指定 Python 解释器对应的 pip。
更多推荐



所有评论(0)