Virtualenv: Ошибка при создании virtualenv с помощью python3.6

Созданный на 22 июн. 2017  ·  24Комментарии  ·  Источник: pypa/virtualenv

Сегодня я установил python3.6 на свою машину с Debian. Python3.6 был доступен в дистрибутиве buster. Когда я пытаюсь создать virtualenv с помощью python3.6.

python3.6 -m venv venv

дает следующую ошибку.

Виртуальная среда не была создана, потому что surepip недоступен. В системах Debian / Ubuntu вам необходимо установить пакет python3-venv , используя следующую команду.

apt-get установить python3-venv

Возможно, вам потребуется использовать sudo с этой командой. После установки python3-venv
пакет, воссоздайте свою виртуальную среду.

Неудачная команда: ['/home/float/test/t/bin/python3.6', '-Im', 'surepip', '--upgrade', '--default-pip']

У меня установлено python3-venv (3.5.3-1) . Почему я получаю эту ошибку? Если я запустил команду

py3 -Im ensurepip --upgrade --default-pip

это говорит

/usr/bin/python3.6: No module named ensurepip

У меня нет проблем с созданием virtualenvs с использованием версии python3 по умолчанию (3.5.3).

Кроме того, я заметил, что могу создать virtualenv следующим образом:

virtualenv -p python3.6 venv

Самый полезный комментарий

Проблема исходного плаката связана с отсутствием установленного пакета 'python3.6-venv', который можно проверить с помощью Docker, если у вас нет доступа к Debian-buster:

$ docker run --rm -it debian:buster /bin/bash
$ apt update
...
$ apt install python3.5 python3.6 python3.5-venv
...
$ python3.6 -m venv venv
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: ['/venv/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']
$ rm -rf venv
$ apt install python3.6-venv
...
$ python3.6 -m venv venv
... success

Установите python3.6-venv, и он должен работать.

Все 24 Комментарий

Привет,

Собственный модуль virtualenv и python3 venv - это два совершенно разных проекта / вещи.

venv делает то же самое, что и virtualenv, но напрямую интегрирован в сам python3.
virtualenv - это в основном исторический проект (и обычно его не следует использовать с python3, пока есть venv).

Основываясь на вашем вводе, я бы сказал, что python3-venv может переустановить ( sudo apt-get reinstall python-venv или что-то подобное) на вашей стороне. Но я могу ошибаться. В любом случае, я уверен, что это похоже на все, что связано с debian.

Так можно закрыть вопрос? (Я здесь не сопровождающий)
С уважением.

Переустановка не сработала. Я закрою этот выпуск сейчас. Я обновлю, если у меня будет дополнительная информация.

@animeshb , после

Failing command: ['/home/float/test/t/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']

?

float<strong i="5">@animesh</strong>:~/test$ python3.6 -m venv venv

Ничего после этой строчки.

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/float/test/t/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']

В папке venv/bin нет команды активации.

float<strong i="13">@animesh</strong>:~/test$ ls venv/bin/
python  python3  python3.6

Я могу перенаправить вас только на одну из многих страниц, соответствующих этой ошибке (это известная проблема с системами debian / ubuntu):

https://bugs.launchpad.net/ubuntu/+source/python3.4/+bug/1290847

как насчет sudo apt-get install python3-pip ?

Проблема исходного плаката связана с отсутствием установленного пакета 'python3.6-venv', который можно проверить с помощью Docker, если у вас нет доступа к Debian-buster:

$ docker run --rm -it debian:buster /bin/bash
$ apt update
...
$ apt install python3.5 python3.6 python3.5-venv
...
$ python3.6 -m venv venv
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: ['/venv/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']
$ rm -rf venv
$ apt install python3.6-venv
...
$ python3.6 -m venv venv
... success

Установите python3.6-venv, и он должен работать.

Вау, мне даже в голову не пришло, что будет пакет -venv для конкретной версии. Установка сделала свое дело.

@gst и @eukaryote Большое спасибо за то, что

Решение @eukaryote сработало для меня. Спасибо, что разместили это!

Неправильно настроенная локаль также может вызвать эту проблему, поскольку этот ответ решает мою проблему, которая выдает то же сообщение об ошибке, что и OP.

Попробуйте выполнить:

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

только одна точка данных, но возился со свежим виртуальным боксом ubuntu bionic, я обнаружил, что apt install python3.6-venv все еще оставил мне сломанный python3.6 -m venv , но запуск apt install python3-venv исправил его.

Я использую Debian testing / buster, и у меня такая же проблема, хотя установлены и python3.6-venv и python3-venv .

Ошибка debian для этого здесь, кстати: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901601

Николай
Там пишут, что починили в последней версии. Итак, я сделал
Удачная чистка Python3.6-Venv
dpkg -i --force-depends-version python3.6-venv_3.6.6 ~ rc1-3_amd64.deb # из snapshot.debian.org
и у меня это работает.
Возможно, мне понадобится исправить позже: apt --fix-broken install

Просто оставьте здесь комментарий для тех, кто прибудет после меня, поискав в Google ту же проблему:

то же самое относится и к 3.7 Python, вам нужно установить python3.7-venv , то есть apt-get install python3.7-venv

К вашему сведению, приведенное выше решение на самом деле не работает для python 3.7. apt install python3.7 python3.7-venv в образе докера стандартного загрузчика по-прежнему создает неработающий virtualenv ("surepip недоступен"). Однако после apt install python3-venv (который без нужды устанавливает весь python3.6) вы можете создать рабочий python 3.7 venv, включая правильный 3.7 pip, с python3.7 -m venv myvenv . Итак, полный рабочий набор команд таков:

sudo apt install python3.7 python3-venv python3.7-venv # all three are required
python3.7 -m venv myvenv
. myvenv/bin/activate

(кстати, обратите внимание, что все установки python3.7-venv - это фиктивный системный модуль ensurepip .)

вы говорите о venv , это другой проект. Этот трекер предназначен для virtualenv.

Я тоже столкнулся с той же проблемой.

[ niraj @ abc ~] $ / python / v3.7.0 / bin / python3 -m venv avd
Ошибка: команда '[' / home / niraj / avd / bin / python3 ',' -Im ',' surepip ',' --upgrade ',' --default-pip ']' вернула ненулевой статус выхода 1.

После добавления libffi3.3 в мой путь LD_LIBRARY он работает

setenv LD_LIBRARY_PATH /libffi/v3.3/lib64

Fisrt, который я установил с помощью sudo apt install python3-venv имел ту же проблему, и она была решена следующим образом: sudo apt install python3.6-venv

@eukaryote по- прежнему не работает. Вы можете помочь? Я использую Ubuntu 18.04 LTS

Неправильно настроенная локаль также может вызвать эту проблему, поскольку этот ответ решает мою проблему, которая выдает то же сообщение об ошибке, что и OP.

Попробуйте выполнить:

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

Это работает для меня на Ubuntu 16.04.6. Спасибо

Неправильно настроенная локаль также может вызвать эту проблему, поскольку этот ответ решает мою проблему, которая выдает то же сообщение об ошибке, что и OP.

Попробуйте выполнить:

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

Спасибо

Ух ты, установка конкретной версии venv у меня сработала. В моем случае python3.8-venv.

Спасибо @jrperin

У меня тоже сработала установка конкретной версии: python3.8-venv

Если версия ОС 18.04 или 20.04:

sudo apt remove python3.6
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.6
sudo apt install python3.6-venv
sudo apt install python3.6-dev

Дополнительное вспомогательное программное обеспечение
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget

Была ли эта страница полезной?
0 / 5 - 0 рейтинги