You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS Catalina下Jupyter Python3无法导入requests但pip显示已安装

解决macOS Catalina下Jupyter Notebook导入requests失败的问题(ModuleNotFoundError)

我前阵子在macOS Catalina上用venv环境折腾Python的时候,正好碰到和你完全一样的问题:

  • 在Jupyter Notebook里导入requests时,弹出ModuleNotFoundError: No module named 'requests'
  • 终端里跑pip3 install requests,系统提示Requirement already satisfied,而且requests明明装在/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages
  • 终端直接用python3或者写脚本运行,都能正常导入requests,但macOS原生的Python(2.x或者3.6)不行
  • 查了下Jupyter里的Python版本,居然是3.6.5,可我系统里的Python3明明是3.8

问题根源

说白了就是Jupyter用的Python kernel和你装了requests的Python环境不是同一个!你装requests的是Python3.8,但Jupyter默认调用的是系统自带的Python3.6,两个环境的包路径完全分开,3.6当然找不到3.8里的requests。

解决步骤:修改kernel.json配置文件

要让Jupyter用我们的Python3.8环境,得改一下kernel的配置文件:

  1. 打开终端,先进入Jupyter的kernel配置目录:
cd ~/Library/Jupyter/kernels/python3

(如果你的Python kernel文件夹名字不是python3,就改成对应的名称)

  1. 先看看当前的kernel配置:
cat kernel.json

你会看到类似这样的内容:

{"argv": ["python3", "-m", "ipykernel_launcher", "-f", "{connection_file}"], "display_name": "Python 3", "language": "python"}

这里的"python3"默认指向系统自带的版本(也就是3.6.5),所以我们要把它换成Python3.8的绝对路径。

  1. 编辑kernel.json文件(用你习惯的编辑器,比如nano或者vim):
nano kernel.json

把里面的"python3"替换成"/Library/Frameworks/Python.framework/Versions/3.8/bin/python3",还可以把display_name改成"Python 3.8"方便识别,修改后的内容如下:

{
 "argv": [
  "/Library/Frameworks/Python.framework/Versions/3.8/bin/python3",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "Python 3.8",
 "language": "python"
}
  1. 保存文件(nano按Ctrl+O,回车确认,再按Ctrl+X退出),然后重启你的Jupyter Notebook。

验证是否生效

打开Jupyter,新建一个Notebook,运行以下代码:

import sys
print(sys.executable)
import requests
print(requests.__version__)

如果输出的sys.executable是你刚才设置的Python3.8路径,而且能正常打印requests版本,就说明问题解决啦!

内容的提问来源于stack exchange,提问作者42piratas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 16:57:53