Как использовать virtualenv с python3.6 на ubuntu 16.04?

Я использую Ubuntu 16.04, который поставляется с Python 2.7 и Python 3.5. Я установил Python 3.6 и symlink python3 на python3.6 через alias python3=python3.6.

Затем я установил virtualenv с помощью sudo -H pip3 install virtualenv. Когда я проверил, virtualenv был установлен в папку "/usr/local/lib/python3.5/dist-packages", поэтому, когда я пытаюсь создать virtualenv, используя python3 -m venv./venv1 он python3 -m venv./venv1 мне ошибки:

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

Что я должен делать?

Ответ 1

Мы обычно используем $ python3 -m venv myvenv для создания нового virtualenv (здесь myvenv - это имя нашего virtualenv).

Как и в моем случае, если у вас есть как python3.5, так и python3.6 в вашей системе, вы можете получить некоторые ошибки.

ПРИМЕЧАНИЕ. В некоторых версиях Debian/Ubuntu вы можете получить следующую ошибку:

 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. 

В этом случае следуйте приведенным выше инструкциям и установите пакет python3-venv:

$ sudo apt-get install python3-venv

ПРИМЕЧАНИЕ.. В некоторых версиях Debian/Ubuntu, инициирующих виртуальную среду, подобную этой, в настоящее время появляется следующая ошибка:

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

Чтобы обойти это, вместо этого используйте команду virtualenv.

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

ПРИМЕЧАНИЕ. Если вы получили сообщение об ошибке, например

E: Не удается найти пакет python3-venv

а затем запустите:

sudo apt install python3.6-venv

Ответ 2

Установка python3.6 и python3.6-venv через python3.6-venv ppa:deadsnakes/ppa вместо ppa:jonathonf/python-3.6 работала для меня

apt-get update \
&& apt-get install -y software-properties-common curl \
&& add-apt-repository ppa:deadsnakes/ppa \
&& apt-get update \
&& apt-get install -y python3.6 python3.6-venv

Ответ 3

Я думаю, что проблема может быть связана с неправильным языком. Я добавил в /etc/environment следующие строки, чтобы исправить это:

LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8

Вам нужно получить исходный файл от вашего bash с помощью этой команды:

source /etc/environment