Jupyter Notebook中pip3未定义及安装包无法导入问题求助
问题描述
在Jupyter Notebook中使用Python 3时,遇到以下问题:
- 用
pip3安装软件包后,导入时总是提示模块未找到错误;但用pip安装的包可以正常导入。 - 本地环境中
pip和pip3位于同一目录,但在Jupyter单元格中直接输入pip会显示Anaconda环境下的pip帮助信息,输入pip3则报NameError: name 'pip3' is not defined。 - 尽管安装时显示成功,但
pip3安装的包无法被Jupyter识别。
排查信息
在Jupyter单元格中执行pip的输出:
Usage: /Users/name/opt/anaconda3/bin/python -m pip <command> [options] Commands: install Install packages. download Download packages. uninstall Uninstall packages. freeze Output installed packages in requirements format. list List installed packages. etc. General Options: -h, --help Show help. --isolated Run pip in an isolated mode, ignoring environment variables and user configuration. -v, --verbose Give more output. Option is additive, and can be used up to 3 times. -V, --version Show version and exit. -q, --quiet Give less output. Option is additive, and can be used up to 3 times (corresponding to WARNING, ERROR, and CRITICAL logging levels). etc.
执行pip3的报错:
NameError Traceback (most recent call last) <ipython-input-4-896908e64b2d> in <module> ----> 1 pip3 NameError: name 'pip3' is not defined
解决方案
明确Jupyter实际使用的Python环境
在Jupyter单元格中执行以下代码,查看当前Notebook绑定的Python解释器路径:import sys print(sys.executable)你会发现Jupyter用的是Anaconda的Python(
/Users/name/opt/anaconda3/bin/python),而pip3默认对应系统或其他非Anaconda的Python环境,导致安装的包不在Jupyter的搜索路径内。在Jupyter中正确执行pip命令
Jupyter单元格中直接输入pip3会被当作Python变量解析,所以报错。要执行系统命令,需要在前面加!:!pip3 install 你的包名但更稳妥的方式是直接用当前Jupyter绑定的Python来执行pip,确保包安装到正确的环境:
!{sys.executable} -m pip install 你的包名验证包的安装位置
执行以下命令对比pip和pip3安装的包列表:!pip list !pip3 list再查看Jupyter的模块搜索路径,确认包是否在其中:
import sys print(sys.path)切换Jupyter内核到目标环境
如果确实需要使用pip3对应的Python环境,先在终端激活该环境,然后安装ipykernel并添加到Jupyter:# 终端执行 python3 -m pip install ipykernel python3 -m ipykernel install --user --name=python3-system之后在Jupyter Notebook的"Kernel"菜单中切换到
python3-system内核,此时用!pip install或!pip3 install安装的包都能正常导入。
内容的提问来源于stack exchange,提问作者user20402884
相关产品推荐
相关产品推荐

