pip装得上不代表import进得去,根本原因是jupyter kernel与pip安装环境不一致;需先用import sys; print(sys.executable)确认当前内核路径,再用%pip安装或%conda安装对应包。

pip 装得上,不代表 import 得进去——这是 Jupyter Notebook 里最常踩的坑。根本原因不是命令不会输,而是没搞清“装给谁”。
确认当前内核用的是哪个 Python 环境
很多问题其实出在环境错位:你在终端用 pip install pandas,但 Jupyter 实际跑的是另一个 conda env 或虚拟环境。不查清楚,装了也白装。
- 在 notebook 单元格里运行:
import sys; print(sys.executable),输出类似/opt/anaconda3/envs/ml/bin/python就是真实路径 - 如果输出是系统默认路径(比如
/usr/bin/python3),而你用 conda 管理环境,那大概率当前 kernel 没绑定对环境 - 检查 kernel 列表:
jupyter kernelspec list(需在终端执行),看当前 notebook 用的是哪个 kernel 名
优先用 %pip 而不是 !pip
%pip 是魔法命令,它自动绑定到当前 kernel 的 Python 解释器;!pip 是 shell 命令,走的是系统默认 pip,容易装错地方。
- 正确写法:
%pip install requests或%pip install -U numpy - 如果报错
ModuleNotFoundError: No module named 'pip',说明当前 kernel 的 Python 没带 pip(极少见,多见于精简版嵌入式环境) -
!pip install只在临时调试、或明确知道 shell pip 指向目标环境时才用,比如你刚用conda activate myenv启动终端再开 notebook
conda 环境下别硬切 pip,尤其装含 C 扩展的库
像 numba、opencv、pyarrow 这类库,conda 自带的二进制包和依赖链更稳定。pip install 容易引发 ABI 冲突或缺失 system library。
- 先确认是否在 conda 环境:
!conda info --envs和!which python对照看 - 推荐安装方式:
%conda install -c conda-forge pyarrow(注意是%conda,不是!conda) - 混用 pip + conda 时,务必先
conda install主要依赖,再用%pip补少量纯 Python 包,避免conda update --all时把 pip 装的包干掉
离线安装或指定源时,--trusted-host 必须配全
国内镜像(如清华源、阿里云源)用 HTTPS,但某些旧版 pip 会校验失败,导致安装中断。
- 清华源完整写法:
%pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn - 如果用私有源(比如公司内网 PyPI),
--trusted-host要填域名,不是 IP 或端口;多个 host 用多个--trusted-host - 离线装
.whl文件时,路径必须是绝对路径或相对于 notebook 当前工作目录,且注意 Python 版本/平台标签(如cp39对应 Python 3.9)
sys.executable,比反复重启 kernel 更省时间。











