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