'No module named 'requests' in Jupyter with Python3, but "Requirement already satisfied" for Python3
I'm on a macOS with Catalina, running my environment from venv
. I'm trying to import requests
within a Jupyter notebook Python3, but I'm getting the following error:
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-2-95039fbd75c1> in <module>()
----> 1 import requests
ModuleNotFoundError: No module named 'requests'
However, requests
is already installed for 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)
If I try to import requests
from the terminal or from a script, it works for Python3, but it won't work for the native macos Python either. But as I said above, I'm using a Python3 notebook 🤔
And just in case, if I run the code below within the notebook...
from platform import python_version
print(python_version())
...I get 3.6.5
UPDATE/FIXED: As pointed out below by @m-z below, my Python3 is v3.8 and Jupyter was running v3.6. To fix this, I had to change one "kernel.json" file, as explained in this thread: Jupyter using the wrong version of python
Solution 1:[1]
You didn't use the virtual environment venv
when you launch the Jupyter Notebook.
There are two methods to solve this problem:
- Create a Jupyter kernel
You can create a Jupyter kernel in your virtual environment. This blog maybe helpful.
- Install
requests
in the exit Jupyter notebook
Run the following command in the Jupyter Notebook cell.
!pip3 install requests
Solution 2:[2]
your pip is installing it for python3.8, and also in a virtualenv, whereas your notebook is python3.6.5. Make sure you pip install for the right environment and the right version of python to do this uninstall the older version of python, then:
Go to
C:\Users\LENOVO\AppData\Local\Programs\Python\
and revome the files of older versionTry installing jupyter notebook by
pip install jupyter
Run jupyter notebook by code
jupyter notebook
Then again do
!pip install requests
import requests
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Ausrada404 |
Solution 2 | richardec |