Unable to create virtual environment with python 3.6

I'm installed python 3.6 on my Ubuntu 17.04. Now, I'm trying to create virtual environment with command:

python3.6 -m venv env

but I'm getting the following message:

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: ['/home/makeev/test2/l/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']

sudo apt install python3-venv hasn't helped, I have this package installed.


Solution 1:

Since you specifically installed python3.6 instead of Ubuntu's default python3 version, which is python3.5, you have to install python3.6-venv instead of python3-venv since that would resolve to python3.5-venv.

To do so, you can use sudo apt install python3.6-venv.

Solution 2:

We usually use $ python3 -m venv myvenv to create a new virtualenv (Here myvenv is the name of our virtualenv).

Similar to my case, if you have both python3.5 as well as python3.6 on your system, then you might get some errors.

NOTE: On some versions of Debian/Ubuntu you may receive the following error:

 The virtual environment was not created successfully because ensure pip is not available.  On Debian/Ubuntu systems, you need to install the python3-venv package using the following command.
      apt-get installpython3-venv  
 You may need to use sudo with that command.  After installing the python3-venv package, recreate your virtual environment. 

In this case, follow the instructions above and install the python3-venv package:

$ sudo apt-get install python3-venv

NOTE: On some versions of Debian/Ubuntu initiating the virtual environment like this currently gives the following error:

Error Command: ['/home/wgetdj/WorkPlace/Programming/Python/myvenv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']

To get around this, use the virtualenv command instead.

$ sudo apt-get install python-virtualenv
$ virtualenv --python=python3.6 myvenv

NOTE: If you get an error like

E: Unable to locate package python3-venv

then instead run:

sudo apt install python3.6-venv