首页 > 解决方案 > 使用 Python3 在 Jupyter 中没有名为“请求”的模块,但 Python3 的“要求已经满足”

问题描述

我在带有 Catalina 的 macOS 上,从venv. 我正在尝试import requests在 Jupyter 笔记本 Python3 中使用,但出现以下错误:

ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-2-95039fbd75c1> in <module>()
----> 1 import requests

ModuleNotFoundError: No module named 'requests'

但是,requests已经为 Python3 安装了:

(venv) 42piratas@Darkseid PLAYGROUND % pip3 install requests
Requirement already satisfied: requests in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (2.24.0)
Requirement already satisfied: idna<3,>=2.5 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from requests) (2.10)
Requirement already satisfied: chardet<4,>=3.0.2 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from requests) (3.0.4)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from requests) (1.25.10)
Requirement already satisfied: certifi>=2017.4.17 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from requests) (2020.6.20)  

如果我尝试requests从终端或脚本导入,它适用于 Python3,但它也不适用于本机 macos Python。但正如我上面所说,我使用的是 Python3 笔记本

以防万一,如果我在笔记本中运行下面的代码......

from platform import python_version
print(python_version())

...我明白了3.6.5

更新/修复: 正如下面@mz 所指出的,我的 Python3 是 v3.8,而 Jupyter 正在运行 v3.6。为了解决这个问题,我必须更改一个“kernel.json”文件,如该线程中所述:Jupyter using the wrong version of python

标签: pythonpython-3.xpython-requestsjupyter-notebookjupyter

解决方案


venv启动 Jupyter Notebook 时没有使用虚拟环境。

有两种方法可以解决这个问题:

  1. 创建 Jupyter 内核

您可以在虚拟环境中创建 Jupyter 内核。这个博客可能会有所帮助。

  1. requests在出口 Jupyter notebook 中安装

在 Jupyter Notebook 单元格中运行以下命令。

!pip3 install requests

推荐阅读