Skip to content

VSCode tries to install pip and ipykernel on WSL2 with venv and ipykernel already configured #9416

Closed
@chrisdlangton

Description

@chrisdlangton

Version

Microsoft Windows [Version 10.0.22572.100]

WSL Version

WSL 2

Kernel Version

5.10.93.2

Distro Version

Ubuntu 20.04

Other Software

via pip
ipykernel 6.9.2

VSCode
February 2022 (version 1.65)
Remote - WSL v0.64.2

Repro Steps

as described https://code.visualstudio.com/docs/datascience/jupyter-notebooks
ran python3.9 -m venv .venv
then in VSCode Ctrl+Shift+P selected the .venv/bin/python
ensured Workspace Trust was given
created a new .ipynb file and opened it in VSCode
selected the kernel using the kernel picker in the top right and chose .venv/bin/python
added print("works") to the cell, made sure it was a "Python" cell. Shift+Enter
prompts to install ipykernel using pip, I clicked "install" and a terminal inside VSCode runs the commands and the output of these are below in the diagnostic logs.

I install ipykernel myself and the following packages were also installed;

Successfully installed asttokens-2.0.5 backcall-0.2.0 debugpy-1.5.1 decorator-5.1.1 entrypoints-0.4 executing-0.8.3 ipykernel-6.9.2 ipython-8.1.1 jedi-0.18.1 jupyter-client-7.1.2 jupyter-core-4.9.2 matplotlib-inline-0.1.3 nest-asyncio-1.5.4 parso-0.8.3 pexpect-4.8.0 pickleshare-0.7.5 prompt-toolkit-3.0.28 psutil-5.9.0 ptyprocess-0.7.0 pure-eval-0.2.2 pygments-2.11.2 python-dateutil-2.8.2 pyzmq-22.3.0 setuptools-60.9.3 six-1.16.0 stack-data-0.2.0 tornado-6.1 traitlets-5.1.1 wcwidth-0.2.5

As shown ipykernel-6.9.2 now exists
in the cell Shift+Enter prompts to install ipykernel using pip again, and the exact same output in the diagnostic logs.

Expected Behavior

I have ipykernel installed and i have pointed VSCode to use the correct venv and correct kernel location. pip is installed so why is VSCode stuck on get-pip ?? I expect to just have the cell execute with this setup.

off topic; worth adding so it is not in any reply. Both a remote (in docker) Jupyter server AND using the host python/pip works just fine but both are not in-scope to this issue.

Actual Behavior

VSCode tried to install pip, and there is a setuptools issue related to the pip install already being complete.
pip is available to VSCode in all other aspects of the VSCode+Python/Pylance operation, it is just when using Jupyter VSCode is mistaken in trying to install pip for no good reason. When that fails it is a red herring, VSCode should not be trying to install pip or the ipykernel in the first place.

This issue aims to have a python interpreter via the venv and the ipykernel installed into that venv (not in docker or on the host).

Diagnostic Logs

/home/wsl/bitbucket/.venv/bin/python /home/wsl/.vscode-server/extensions/ms-python.python-2022.2.1924087327/pythonFiles/shell_exec.py /home/wsl/bitbucket/.venv/bin/python /home/wsl/.vscode-server/extensions/ms-python.python-2022.2.1924087327/pythonFiles/get-pip.py /tmp/tmp-84767YuKhpR6lHjS.log
Executing command in shell >> /home/wsl/bitbucket/.venv/bin/python /home/wsl/.vscode-server/extensions/ms-python.python-2022.2.1924087327/pythonFiles/get-pip.py
/tmp/tmpe9vcmjw1/pip.zip/pip/_vendor/packaging/version.py:111: DeprecationWarning: Creating a LegacyVersion has been deprecated and will be removed in the next major release
/tmp/tmpe9vcmjw1/pip.zip/pip/_vendor/packaging/version.py:111: DeprecationWarning: Creating a LegacyVersion has been deprecated and will be removed in the next major release
/home/wsl/bitbucket/.venv/lib/python3.9/site-packages/_distutils_hack/__init__.py:17: UserWarning: Distutils was imported before Setuptools, but importing Setuptools also replaces the `distutils` module in `sys.modules`. This may lead to undesirable behaviors or errors. To avoid these issues, avoid using distutils directly, ensure that setuptools is installed in the traditional way (e.g. not an editable install), and/or make sure that setuptools is always imported before distutils.
  warnings.warn(
/home/wsl/bitbucket/.venv/lib/python3.9/site-packages/_distutils_hack/__init__.py:30: UserWarning: Setuptools is replacing distutils.
  warnings.warn("Setuptools is replacing distutils.")
Traceback (most recent call last):
  File "/home/wsl/.vscode-server/extensions/ms-python.python-2022.2.1924087327/pythonFiles/get-pip.py", line 27086, in <module>
    main()
  File "/home/wsl/.vscode-server/extensions/ms-python.python-2022.2.1924087327/pythonFiles/get-pip.py", line 144, in main
    bootstrap(tmpdir=tmpdir)
  File "/home/wsl/.vscode-server/extensions/ms-python.python-2022.2.1924087327/pythonFiles/get-pip.py", line 125, in bootstrap
    args = determine_pip_install_arguments()
  File "/home/wsl/.vscode-server/extensions/ms-python.python-2022.2.1924087327/pythonFiles/get-pip.py", line 67, in determine_pip_install_arguments
    import setuptools  # noqa
  File "/home/wsl/bitbucket/.venv/lib/python3.9/site-packages/setuptools/__init__.py", line 8, in <module>
    import _distutils_hack.override  # noqa: F401
  File "/home/wsl/bitbucket/.venv/lib/python3.9/site-packages/_distutils_hack/override.py", line 1, in <module>
    __import__('_distutils_hack').do_override()
  File "/home/wsl/bitbucket/.venv/lib/python3.9/site-packages/_distutils_hack/__init__.py", line 72, in do_override
    ensure_local_distutils()
  File "/home/wsl/bitbucket/.venv/lib/python3.9/site-packages/_distutils_hack/__init__.py", line 59, in ensure_local_distutils
    assert '_distutils' in core.__file__, core.__file__
AssertionError: /usr/local/lib/python3.9/distutils/core.py
Traceback (most recent call last):
  File "/home/wsl/.vscode-server/extensions/ms-python.python-2022.2.1924087327/pythonFiles/shell_exec.py", line 26, in <module>
    subprocess.check_call(shell_args, stdout=sys.stdout, stderr=sys.stderr)
  File "/usr/local/lib/python3.9/subprocess.py", line 373, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/home/wsl/bitbucket/.venv/bin/python', '/home/wsl/.vscode-server/extensions/ms-python.python-2022.2.1924087327/pythonFiles/get-pip.py']' returned non-zero exit status 1.

❯ pip --version
pip 22.0.4 from /home/wsl/bitbucket/.venv/lib/python3.9/site-packages/pip (python 3.9)

Metadata

Metadata

Assignees

Labels

bugIssue identified by VS Code Team member as probable buginfo-neededIssue requires more information from poster

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions