679 words
3 minutes
Conda 与 Pip 使用建议
在 Conda 环境下,一般优先推荐使用 Conda 安装包,只有在 Conda 找不到你需要的包时,再使用 pip。原因如下:
✅ Conda 安装包的优点(推荐用):
| 优势 | 说明 |
|---|---|
| 1. 更好地管理依赖 | Conda 会一起解决依赖关系,防止冲突。 |
| 2. 多语言支持 | 不只支持 Python,也支持 C/C++、Fortran 等库(如 mkl, libgcc)。 |
| 3. 安装稳定、速度快(尤其使用清华源) | 许多包都是预编译好的 .tar.bz2 或 .conda 格式,直接解压即可。 |
| 4. 不容易冲突 | 因为所有包都记录在 conda-meta 中,环境一致性更好。 |
⚠️ pip 的适用场景:
| 场景 | 说明 |
|---|---|
| Conda 没有这个包 | 比如一些新出的或第三方库(如 transformers, llama-index)。 |
| 需要从 PyPI 获取最新版本 | Conda 更新可能稍慢。 |
| 安装 GitHub 上的开发版 | pip 支持 pip install git+https://...。 |
❌ 混用风险:
| 问题 | 说明 |
|---|---|
| 依赖冲突 | Pip 安装的包可能覆盖 Conda 的版本,导致环境紊乱。 |
| Conda 记录不一致 | pip 安装的包不写入 conda-meta/,Conda 无法感知。 |
| 卸载残留问题 | pip 删除不彻底或导致环境不干净。 |
✅ 推荐使用策略(实践中最稳):
# 1. 用 conda 装 Conda 能找到的包conda install numpy matplotlib scipy
# 2. 用 pip 装 Conda 没有的pip install transformers pytorch-lightning
# 3. pip 装之前先装 pip 本体(确保环境感知)conda install pip📌 一般
conda install pip会将 pip 安装到该环境的bin/中,确保你 pip 安装的是当前环境里的,而不是系统 pip。
🧪 一键判断你当前 pip 装到哪里:
which pip# 或pip show numpy # 看看包装哪了
# pip 装到别的环境了就错了,应该在你当前激活的 conda 环境下🧩 总结一句话:
在 Conda 环境下 —— “能用 Conda,就别用 pip;非用 pip,不要乱装。“
conda查看包安装路径
✅ 查看某个包的安装位置:
conda list 包名例如查看 numpy 的位置:
conda list numpy输出中类似这一行:
numpy 1.26.4 py39h5f9d8c6_0 /home/jqr/DATA/pzy/envs/DMP- 最后一列就是该包的安装位置。
- 如果是 pip 安装的,会显示
pypi字样。
pip查看安装包路径
在 pip 中查看已安装包的路径,可以使用以下命令:
✅ 查看指定包的安装路径(推荐方式):
pip show 包名例如查看 numpy 的路径:
pip show numpy你会看到如下输出片段:
Name: numpyVersion: 2.0.2Location: /home/jqr/DATA/pzy/envs/DMP/lib/python3.9/site-packages这里的 Location 就是该包的安装路径。
✅ 从 Python 中查看某个包的实际文件位置:
python -c "import numpy; print(numpy.__file__)"输出类似:
/home/jqr/DATA/pzy/envs/DMP/lib/python3.9/site-packages/numpy/__init__.py这对于确认到底用的是哪个版本的包很有用,尤其当你怀疑系统有多个版本时。
Conda 与 Pip 使用建议
/blog/posts/成长日记/python/conda-pip-tips/ Some information may be outdated