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__
Asked By: Joris Limonier

||

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:

  1. Install Anaconda.
  2. 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
Answered By: datalifenyc

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
Answered By: Joris Limonier

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!

Answered By: gamingflexer

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

Answered By: Job Natdhanai