Running cells with Python 3.10 requires ipykernel installed
Question:
I just installed Python 3.10 on my laptop (Ubuntu 20.04).
Running a Jupyter Notebook inside of VS Code works with Python 3.9 but not with Python 3.10. I get the error message: Running cells with 'Python 3.10.0 64 bit' requires ipykernel installed or requires an update
.
Update February 2022
Jalil Nourmohammadi Khiarak gave a more complete answere, it is now the new accepted answer.
Update January 2022
It was a dumb error, I solved my problem (see accepted answer).
Things I tried:
- Clicking on reinstall, which runs:
/usr/bin/python3.10 /home/joris/.vscode/extensions/ms-python.python-2021.10.1365161279/pythonFiles/shell_exec.py /usr/bin/python3.10 -m pip install -U --force-reinstall ipykernel /tmp/tmp-12568krFMIDJVy4jp.log
- Running
pip3 install --upgrade ipykernel jupyter notebook pyzmq
(from this thread).
Edits
- As asked in the comments, here is the output when I click the "reinstall" button:
/usr/bin/python3.10 /home/joris/.vscode/extensions/ms-python.python-2021.10.1365161279/pythonFiles/shell_exec.py /usr/bin/python3.10 -m pip install -U --force-reinstall ipykernel /tmp/tmp-10997AnLZP3B079oV.log
Executing command in shell >> /usr/bin/python3.10 -m pip install -U --force-reinstall ipykernel
Traceback (most recent call last):
File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/usr/lib/python3/dist-packages/pip/__main__.py", line 19, in <module>
sys.exit(_main())
File "/usr/lib/python3/dist-packages/pip/_internal/cli/main.py", line 73, in main
command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
File "/usr/lib/python3/dist-packages/pip/_internal/commands/__init__.py", line 96, in create_command
module = importlib.import_module(module_path)
File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/usr/lib/python3/dist-packages/pip/_internal/commands/install.py", line 24, in <module>
from pip._internal.cli.req_command import RequirementCommand
File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 15, in <module>
from pip._internal.index.package_finder import PackageFinder
File "/usr/lib/python3/dist-packages/pip/_internal/index/package_finder.py", line 21, in <module>
from pip._internal.index.collector import parse_links
File "/usr/lib/python3/dist-packages/pip/_internal/index/collector.py", line 12, in <module>
from pip._vendor import html5lib, requests
ImportError: cannot import name 'html5lib' from 'pip._vendor' (/usr/lib/python3/dist-packages/pip/_vendor/__init__.py)
Traceback (most recent call last):
File "/home/joris/.vscode/extensions/ms-python.python-2021.10.1365161279/pythonFiles/shell_exec.py", line 26, in <module>
subprocess.check_call(shell_args, stdout=sys.stdout, stderr=sys.stderr)
File "/usr/lib/python3.10/subprocess.py", line 369, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/python3.10', '-m', 'pip', 'install', '-U', '--force-reinstall', 'ipykernel']' returned non-zero exit status 1.
- Here is what my
_vendor
folder contains:
joris@joris-N751JK:~$ ls /usr/lib/python3/dist-packages/pip/_vendor/
__init__.py __pycache__
- Here is the output of reinstalling pip and checking the
_vendor
file:
joris@joris-N751JK:~$ python3 -m pip install --upgrade --force-reinstall pip
Defaulting to user installation because normal site-packages is not writeable
Collecting pip
Using cached pip-21.3.1-py3-none-any.whl (1.7 MB)
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 21.3.1
Uninstalling pip-21.3.1:
Successfully uninstalled pip-21.3.1
Successfully installed pip-21.3.1
joris@joris-N751JK:~$ ls /usr/lib/python3/dist-packages/pip/_vendor
__init__.py __pycache__
Answers:
I don’t think ipykernel is compatible with 3.10.
Below is the message I receive when I try to install ipykernel with the following command: conda install -c anaconda ipykernel
UnsatisfiableError: The following specifications were found
to be incompatible with the existing python installation in your environment:
Specifications:
- ipykernel -> python[version='>=2.7,<2.8.0a0|>=3.6,<3.7.0a0|>=3.7,<3.8.0a0|>=3.8,<3.9.0a0|>=3.5,<3.6.0a0|>=3.9,<3.10.0a0']
Your python: python=3.10
Solution:
I recommend creating a virtual environment using conda or another library.
To get you started:
- Install Anaconda.
- Enter the following commands. [Note: These are the Windows commands – may vary slightly on Mac and Linux.]
# Create virtual environment
# Use a version of Python that is less than 3.10
conda create --name your_env_name python<3.10
# Activate new environment
conda activate your_env_name
# Install ipykernel
conda install -c anaconda ipykernel
# Add this new environment to your Jupyter Notebook kernel list
ipython kernel install --name your_env_name --user
# Windows only: When trying to launch `jupyter notebook`, you may receive a win32api error.
# The command below fixes that issue.
conda install -c anaconda pywin32
I finally found what went wrong. I am fairly experienced with Python coding, but still far from a pro when it comes to version handling in general.
The issue here is that ipykernel
needs to be reinstalled for each new Python version you install. Therefore, what solved my problem is simply:
python3.10 -m pip install ipykernel
I would like to add a comment for that:
Your solution is correct but it didn’t work for me when I have used it on my new Linux. I did the following job to solve the problem.
Probably people after using the following comment:
python3.10 -m pip install ipykernel
Will get error for ‘distutils.util’. So you should install first:
sudo apt-get install python3.10-distutils
Then again if you try to install you will get the other error:
ImportError: cannot import name ‘html5lib’ from ‘pip._vendor’ (/usr/lib/python3/dist-packages/pip/_vendor/
To solve it you should use:
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10
Finally, it would be best if you run:
/bin/python3.10 ~/.vscode/extensions/ms-python.python-2022.0.1786462952/pythonFiles/shell_exec.py /bin/python3.10 -m pip install -U notebook /tmp/tmp-5290PWIe78U4HgLu.log
MacOs M1
python -m pip install jupyter notebook -U
Use this and restart VSCode it works.
Also works if u see this error
Failed to start the Kernel.
The 'python3912jvsc74a57bd0f40663dfee16db09be6af2ff2550db36bd5354ec153147c40353828514dedb99' kernel is not available. Please pick another suitable kernel instead, or install that kernel.
View Jupyter log for further details.
It was working fine a few days ago but okay this solved it!
for windows not use terminal in your IDE
for conda env open anaconda prompomt then type
conda install -p "your python path" –update-deps –force-reinstall
I just installed Python 3.10 on my laptop (Ubuntu 20.04).
Running a Jupyter Notebook inside of VS Code works with Python 3.9 but not with Python 3.10. I get the error message: Running cells with 'Python 3.10.0 64 bit' requires ipykernel installed or requires an update
.
Update February 2022
Jalil Nourmohammadi Khiarak gave a more complete answere, it is now the new accepted answer.
Update January 2022
It was a dumb error, I solved my problem (see accepted answer).
Things I tried:
- Clicking on reinstall, which runs:
/usr/bin/python3.10 /home/joris/.vscode/extensions/ms-python.python-2021.10.1365161279/pythonFiles/shell_exec.py /usr/bin/python3.10 -m pip install -U --force-reinstall ipykernel /tmp/tmp-12568krFMIDJVy4jp.log
- Running
pip3 install --upgrade ipykernel jupyter notebook pyzmq
(from this thread).
Edits
- As asked in the comments, here is the output when I click the "reinstall" button:
/usr/bin/python3.10 /home/joris/.vscode/extensions/ms-python.python-2021.10.1365161279/pythonFiles/shell_exec.py /usr/bin/python3.10 -m pip install -U --force-reinstall ipykernel /tmp/tmp-10997AnLZP3B079oV.log
Executing command in shell >> /usr/bin/python3.10 -m pip install -U --force-reinstall ipykernel
Traceback (most recent call last):
File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/usr/lib/python3/dist-packages/pip/__main__.py", line 19, in <module>
sys.exit(_main())
File "/usr/lib/python3/dist-packages/pip/_internal/cli/main.py", line 73, in main
command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
File "/usr/lib/python3/dist-packages/pip/_internal/commands/__init__.py", line 96, in create_command
module = importlib.import_module(module_path)
File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/usr/lib/python3/dist-packages/pip/_internal/commands/install.py", line 24, in <module>
from pip._internal.cli.req_command import RequirementCommand
File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 15, in <module>
from pip._internal.index.package_finder import PackageFinder
File "/usr/lib/python3/dist-packages/pip/_internal/index/package_finder.py", line 21, in <module>
from pip._internal.index.collector import parse_links
File "/usr/lib/python3/dist-packages/pip/_internal/index/collector.py", line 12, in <module>
from pip._vendor import html5lib, requests
ImportError: cannot import name 'html5lib' from 'pip._vendor' (/usr/lib/python3/dist-packages/pip/_vendor/__init__.py)
Traceback (most recent call last):
File "/home/joris/.vscode/extensions/ms-python.python-2021.10.1365161279/pythonFiles/shell_exec.py", line 26, in <module>
subprocess.check_call(shell_args, stdout=sys.stdout, stderr=sys.stderr)
File "/usr/lib/python3.10/subprocess.py", line 369, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/python3.10', '-m', 'pip', 'install', '-U', '--force-reinstall', 'ipykernel']' returned non-zero exit status 1.
- Here is what my
_vendor
folder contains:
joris@joris-N751JK:~$ ls /usr/lib/python3/dist-packages/pip/_vendor/
__init__.py __pycache__
- Here is the output of reinstalling pip and checking the
_vendor
file:
joris@joris-N751JK:~$ python3 -m pip install --upgrade --force-reinstall pip
Defaulting to user installation because normal site-packages is not writeable
Collecting pip
Using cached pip-21.3.1-py3-none-any.whl (1.7 MB)
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 21.3.1
Uninstalling pip-21.3.1:
Successfully uninstalled pip-21.3.1
Successfully installed pip-21.3.1
joris@joris-N751JK:~$ ls /usr/lib/python3/dist-packages/pip/_vendor
__init__.py __pycache__
I don’t think ipykernel is compatible with 3.10.
Below is the message I receive when I try to install ipykernel with the following command: conda install -c anaconda ipykernel
UnsatisfiableError: The following specifications were found
to be incompatible with the existing python installation in your environment:
Specifications:
- ipykernel -> python[version='>=2.7,<2.8.0a0|>=3.6,<3.7.0a0|>=3.7,<3.8.0a0|>=3.8,<3.9.0a0|>=3.5,<3.6.0a0|>=3.9,<3.10.0a0']
Your python: python=3.10
Solution:
I recommend creating a virtual environment using conda or another library.
To get you started:
- Install Anaconda.
- Enter the following commands. [Note: These are the Windows commands – may vary slightly on Mac and Linux.]
# Create virtual environment
# Use a version of Python that is less than 3.10
conda create --name your_env_name python<3.10
# Activate new environment
conda activate your_env_name
# Install ipykernel
conda install -c anaconda ipykernel
# Add this new environment to your Jupyter Notebook kernel list
ipython kernel install --name your_env_name --user
# Windows only: When trying to launch `jupyter notebook`, you may receive a win32api error.
# The command below fixes that issue.
conda install -c anaconda pywin32
I finally found what went wrong. I am fairly experienced with Python coding, but still far from a pro when it comes to version handling in general.
The issue here is that ipykernel
needs to be reinstalled for each new Python version you install. Therefore, what solved my problem is simply:
python3.10 -m pip install ipykernel
I would like to add a comment for that:
Your solution is correct but it didn’t work for me when I have used it on my new Linux. I did the following job to solve the problem.
Probably people after using the following comment:
python3.10 -m pip install ipykernel
Will get error for ‘distutils.util’. So you should install first:
sudo apt-get install python3.10-distutils
Then again if you try to install you will get the other error:
ImportError: cannot import name ‘html5lib’ from ‘pip._vendor’ (/usr/lib/python3/dist-packages/pip/_vendor/
To solve it you should use:
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10
Finally, it would be best if you run:
/bin/python3.10 ~/.vscode/extensions/ms-python.python-2022.0.1786462952/pythonFiles/shell_exec.py /bin/python3.10 -m pip install -U notebook /tmp/tmp-5290PWIe78U4HgLu.log
MacOs M1
python -m pip install jupyter notebook -U
Use this and restart VSCode it works.
Also works if u see this error
Failed to start the Kernel.
The 'python3912jvsc74a57bd0f40663dfee16db09be6af2ff2550db36bd5354ec153147c40353828514dedb99' kernel is not available. Please pick another suitable kernel instead, or install that kernel.
View Jupyter log for further details.
It was working fine a few days ago but okay this solved it!
for windows not use terminal in your IDE
for conda env open anaconda prompomt then type
conda install -p "your python path" –update-deps –force-reinstall