优先用conda install,因其能自动处理编译依赖、二进制兼容性和Python版本匹配;pip易在科学计算库上引发ABI冲突或编译失败。

conda install 和 pip install 都能装,但优先用 conda install,尤其在 Anaconda 环境下——它能自动处理编译依赖、二进制兼容性和 Python 版本匹配,而 pip 容易在科学计算库(如 numpy、scipy、pytorch)上触发 ABI 冲突或编译失败。
该用 conda 还是 pip?看这三点
用 conda install 的典型场景:
- 要装的库在 conda-forge 或 anaconda 渠道里有预编译包(比如 matplotlib、scikit-learn)
- 当前环境是通过 conda create 创建的,且你没手动混用 pip 升级过核心包
- 出现类似 ImportError: DLL load failed 或 undefined symbol: PyUnicode_AsUTF8 这类底层链接错误时,换 conda 通常立刻解决
必须用 pip install 的情况:
- 库只发布在 PyPI 上,没上 conda 渠道(比如最新版 wandb、llama-index)
- 项目依赖中明确写了 requirements.txt,且含 pip-only 包(如某些私有包或带 pyproject.toml 构建逻辑的)
- 你想装某个包的特定 commit(pip install git+https://github.com/xxx@main)
⚠️ 混用风险:
- 先 conda install numpy,再 pip install numpy==1.26.0 → 可能导致 scipy 导入报错
- pip 安装的包会绕过 conda 的依赖图检查,后续 conda update --all 可能破坏环境
安装命令写法和常见陷阱
conda install 默认从 defaults 渠道拉包,很多新库不在里面。遇到 PackageNotFoundError,先试:
-
conda install -c conda-forge <package_name></package_name>(推荐,社区维护活跃) -
conda install -c bioconda <package_name></package_name>(生物信息类) -
conda search -c conda-forge <package_name></package_name>确认是否存在及支持的 Python 版本
pip install 常见翻车点:
- 报错 ERROR: Could not build wheels for xxx:缺 C++ 构建工具(Windows)或 gcc/gfortran(Linux/macOS)→ 改用 conda install 或装 conda install m2w64-toolchain(Win)
- 报错 PermissionError: [WinError 5] Access is denied:别用管理员 cmd 运行,而是激活目标环境后再装
- 安装后 import 失败:确认当前 Python 解释器路径是否指向你的 conda 环境(which python 或 where python),不是系统 Python
离线安装 wandb 这类 PyPI-only 库
不能直接 pip install wandb,得提前在可联网机器上把包和所有依赖全下好:
- 查依赖树:
pip download wandb --no-deps --platform manylinux2014_x86_64 --python-version 39 --only-binary=:all:(按你目标环境的 Python 版本和系统调整) - 再补依赖:
pip download --no-cache-dir --find-links ./ -r requirements.txt --prefer-binary --platform manylinux2014_x86_64 --python-version 39 --only-binary=:all: - 把所有
.whl文件拷到离线机,在目标 conda 环境里运行:pip install --find-links ./ --no-index --upgrade wandb
注意:wandb 依赖 requests、click、graphql-core 等十多个包,漏一个就装不上;--only-binary=:all: 强制跳过源码编译,避免离线机缺构建环境。
验证是否真装进了当前环境
很多人以为 pip install 成功就完事了,其实可能装到了 base 环境或系统 Python 里。最稳的验证方式是:
- 先确认环境已激活:
conda activate myenv,终端提示符应显示(myenv) - 检查解释器位置:
python -c "import sys; print(sys.executable)"→ 输出路径应含anaconda3/envs/myenv - 查包位置:
python -c "import wandb; print(wandb.__file__)"→ 路径必须落在该环境的site-packages下 - 别只信
conda list:它不显示pip安装的包(除非用conda list --explicit或pip list)
最易被忽略的一点:Jupyter Notebook 启动时用的 kernel 可能和你当前终端激活的环境不一致——改完环境后,记得在 notebook 里执行 !which python 或重启 kernel 再测试。

















