Installing venv for python3 in WSL (Ubuntu)
Question:
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.
Answers:
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
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 -m venv whatever
Good luck!
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.
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
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 🙂
You need to install also python3.8-venv via
sudo apt install python3.8-venv
this fixed the problem for me.
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.
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
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 -m venv whatever
Good luck!
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.
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
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 🙂
You need to install also python3.8-venv via
sudo apt install python3.8-venv
this fixed the problem for me.