skip to Main Content

I am trying to configure venv on Windows Subsystem for Linux with Ubuntu.

What I have tried:

1) Installing venv through pip (pip3, to be exact)

pip3 install venv

I get the following error

ERROR: Could not find a version that satisfies the requirement venv (from versions: none)
ERROR: No matching distribution found for venv

2) Installing venv through apt and apt-get

sudo apt install python3-venv

In this case the installation seems to complete, but when I try to create a virtual environment with python3 -m venv ./venv, I get an error, telling me to do apt-get install python3-venv (which I just did!)

The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/mnt/c/Users/Vicubso/.../code/venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']

I have also read the following posts
post 1,
post 2, and several others. None of these seem to solve my problem.

Any help would be much appreciated.

6

Answers


  1. Give this approach a shot:

    Install the pip:

    sudo apt-get install python-pip
    

    Install the virtual environment:

    sudo pip install virtualenv
    

    Store your virtual environments somewhere:

    mkdir ~/.storevirtualenvs
    

    Now you should be able to create a new virtualenv

    virtualenv -p python3 yourVenv
    

    To activate:

    source yourVenv/bin/activate
    

    To exit your new virtualenv, just deactivate

    Login or Signup to reply.
  2. Nothing here worked for me, but this did in WSL2:

    sudo apt-get update
    sudo apt-get install libpython3-dev
    sudo apt-get install python3-venv
    python3.8 -m venv whatever
    

    Good luck!

    Login or Signup to reply.
  3. This was more of a headache than it needed to be. It seems that it relates to WSL<->Windows file system mapping issues. This blog post perhaps describes it better, but the net is you need to store additional metadata with files on a particular mount, as described in this MS devblog.

    I fixed the issue by running:

    sudo umount /mnt/c
    sudo mount -t drvfs C: /mnt/c -o metadata
    

    After which I was able to create python venv without needing to sudo.

    Login or Signup to reply.
  4. The error occurs when you’re in /mnt/XXX (under Windows part).

    Switch to Linux part by cd and run python3 -m venv ./venv again and that should be fine

    Login or Signup to reply.
  5. I was getting the same error message, I have WSL(Ubuntu) installed on my computer, finally I found this doc:
    https://learn.microsoft.com/en-us/windows/python/web-frameworks#open-a-wsl—remote-window
    Ironically the only difference from what I was using as command was the name, I was using venv, then I run the command again using .venv so that the files become hidden files instead, and it worked. Hopefully it’ll help someone else 🙂

    Login or Signup to reply.
  6. You need to install also python3.8-venv via
    sudo apt install python3.8-venv

    this fixed the problem for me.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search