pyvenv не працює, оскільки securepip недоступний


88

Кілька днів тому я перейшов з ubuntu 14.04 на ubuntu 16.04. Коли я намагаюся створити віртуальну env за допомогою

pyvenv .venv

або

python3 -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: ['/usr/bin/python3.5', '-Im', 'ensurepip', '--upgrade', '--default-pip']

Я спробував запустити обидва

sudo apt-get install python3-venv

і

sudo apt-get install python3.5-venv

але це не вирішило моєї проблеми.


Моя проблема вирішена в ОС з інформацією про випуск: Ідентифікатор дистриб'ютора: LinuxMint Опис: Linux Mint 18.3 Sylvia Випуск: 18.3
nix

жодна з відповідей не вирішила це для мене. все ще застряг на тій самій помилці
Шоайб Ікбал

Можливий дублікат помилки
SS Anne

Відповіді:


114

Здається, це була локальна проблема. Вирішено виконанням:

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

знайдено в цьому потоці Помилка локальної версії Python: непідтримуване налаштування локалі


34
Це божевілля, але це правда
user1703761

8
Дійсно цікаво, але хтось знає, в чому причина?
Хуан Антоніо

не працював у мене в ОС з дистрибутивною інформацією: Ідентифікатор дистрибутора: LinuxMint Опис: Linux Mint 18.3 Sylvia Випуск: 18.3
nix

1
Дякую, тут запущено мінімальне налаштування докера. Я ніколи не здогадався б.
Antti Haapala

1
@JuanAntonio Здається, Ubuntu (принаймні 16.04) є небінікодним бістро, як уже згадувалося в цьому випуску: tickets.puppetlabs.com/browse/IMAGES-498 Думаю, нам слід додати налаштування локалі до завантаження сервера. .
Андреас Bergström

108

спробуйте встановити python3.6-venv:

sudo apt-get install python3.6-venv

Дякую за рішення. Він працював 16.04 (враховуючи те, що python3.6 вже був встановлений, звичайно). Я НЕ розумію, що: 1. venv повинен точно зробити використання apt-get непотрібним. Це частина стандартної бібліотеки. 2. чому версія pip за замовчуванням за допомогою venv не є останньою версією?
Лайонел Требушон,

26
... або sudo apt-get install python3.7-venvякщо ви використовуєте python 3.7
Alleo,

12
... або sudo apt-get install python3.8-venvякщо ви використовуєте python 3.8
cowlinator

3
... або sudo apt-get install python3.9-venvякщо ви використовуєте python 3.9 (на майбутнє)
Андрій Семакін

7
... або sudo apt-get install python3.10-venvякщо ви використовуєте python 3.10 (на випадок, якщо ми переживемо 2020 рік)
Steven667,

44

Одна з інших відповідей виправила це для мене минулого разу, але з Python 3.7 мені довелося зробити:

apt install python3-pip python3-setuptools python3.7-venv

Слідом за

python3.7 -m venv /path/to/venv

22

В рамках підсистеми Windows Linux та Ubuntu 18.04 це було спричинено тим, що я нещодавно не оновлювався.

Я побіг:

sudo apt update
sudo apt upgrade

Потім sudo apt install python3-venvпрацював.

Зауважте, що я також спробував рішення UTF-8 заздалегідь (я зробив його частиною свого .bashrc), так що це могло б сприяти.


4
Я не думаю, що рішення UTF-8 має значення. Я також на WSL Ubuntu 18.04 і кроки , sudo apt updateі sudo apt install python3-venvбули достатні.
Theja,

1
Це єдине рішення, яке спрацювало для мене! Я спробував змінити локаль та встановити нову версію Python безрезультатно
arctic.queenolina

2
це теж спрацювало для мене, я спробував кілька інших варіантів .. це не спрацювало,
Учень

блискуче, працювало у мене !!!
Reckoner

9

У моєму випадку працювали наступні кроки:

  • Ubuntu 18.04.4 LTS
 $ sudo apt-get install python3-venv python3.7-venv
 $ python3.7 -m venv [your_path_to_virtual_env_here]

8

Якщо це комусь допомагає, я отримав ту ж помилку в Ubuntu 18.04. Встановлення локалів не спрацювало і спроба встановити python3-venvдала помилку:

$ sudo apt-get install python3-venv
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 python3-venv : Depends: python3.6-venv (>= 3.6.5-2~) but it is not going to be installed
                Depends: python3 (= 3.6.5-3) but 3.6.7-1~18.04 is to be installed
E: Unable to correct problems, you have held broken packages.

І схоже, сховище apt мало дві версії python:

$ apt list python3 -a
python3/bionic-updates,now 3.6.7-1~18.04 amd64 [installed]
python3/bionic 3.6.5-3 amd64

Я намагався встановити, Python3.6.5-3але apt хотів видалити кожну залежність. Я зміг вирішити проблему, встановивши Python3.7 і створивши venv з цим:

$ sudo apt-get install python3.7 python3.7-venv
$ python3.7 -m venv my_venv

1
Це спрацювало для мене. Зробив sudo apt install python3.8 python3.8-venvі створив віртуальне середовище з використанням python3.8 -m venv venv_name. Дякую!
Amir A. Shabani

5

Я зіткнувся з цією проблемою в Ubuntu 18.04 для нещодавнього випуску Python-3.8 . Моє рішення було додати PPD Deadsnakes, який постачає необхідний python3.8-distutilsпакет. python3.8-venvПакет вже в сховище. Завдяки цій публікації в блозі :

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8
sudo apt install python3.8-distutils
sudo apt install python3.8-venv

Примітка: Це лише тимчасове рішення. Найближчим часом необхідний python3.8-distutilsпакет, ймовірно, буде доступний у сховищі Ubuntu за замовчуванням.

Редагувати:

Для Ubuntu 20.04 LTS пакет python3-distutils базується на Python 3.8. Наразі для Ubuntu 18.04 LTS не існує пакету для відключення пакунків Python 3.8.

Як згадувалося в інших коментарях до цієї теми, distutilsможе не знадобитися. Це було для мого випадку використання, але, будь ласка, розгляньте це рішення перед додаванням додаткових PPA.


1
sudo apt install python3.8-venvбув переможцем для мене. Всю іншу допомогу, яку я міг знайти, python3-venvнатомість намагався встановити .
user1717828

4

Вирішив подібні проблеми на Ubuntu18, коли натрапив на цю відповідь . Він схожий на той, що працював для @Niko Rikken, прийняти насправді не потрібні нові PPA та пакет "python3.8-distutils". Я встановлював нове середовище python3.8 за допомогою venv, і у мене вже був встановлений і оновлений "python3-venv", тому моє рішення було встановити лише "python3.8-venv":

% sudo apt-get install python3.8-venv

І ось ці рядки запрацювали:

% python3.8 -m venv ~/envs/new_env
% source ~/envs/new_env/bin/activate

3

Спробуйте: python3.* -m venv myvenv -

І не забудьте замінити * на вашу конкретну версію python


2

У мене була та ж проблема - python env має 2 версії для 2.7 та 3.6.

Все, що вам потрібно зробити, це:

  1. Встановіть останню версію pip, встановивши інсталятор pyenv
  2. Обов’язково дотримуйтесь інструкцій з встановлення pyenv, які ви знайдете тут

Щасти!


2

Якщо ви мали намір отримати python3.8 вкл. pip і venv на Ubuntu 18.04:

  • sudo apt install python3.8 python3.8-venv python3-pip # немає пакету python3.8-pip
  • python3.8 -m venv venv
  • source venv/bin/activate
  • python --version # -> python 3.8.0
  • pip --version # -> pip 9.0.1 з /home/user/venv/lib/python3.8/site-packages (python 3.8)

2

Я зіткнувся з такою ж проблемою і шукаю рішення. Йдеться про проблему:

surepip вимкнено в Debian / Ubuntu для системного python.

І це моє рішення:

python3 -m venv myvenv --without-pip --system-site-packages

Зверніть увагу, що середовище python без pipможе бути не таким корисним.
ankostis

2

Спробуйте такі команди:

sudo apt install python-virtualenv
virtualenv --python=python3.6 myenv

Ці команди можуть працювати для вас.

Якщо у вас виникає помилка типу E: Unable to locate package python3-venv Потім спробуйте такі команди:

sudo apt install python3.6-venv

1

У мене була така сама проблема для існуючого проекту під час виконання python3 -m venv venv. Я щойно оновив свої версії Ubuntu та Python. Після видалення вже існуючої venvпапки проблема була вирішена. (Я також спробував рішення UTF-8 .)


1

Моя проблема була пов’язана з дозволами та правом власності. Я ввійшов до іншого користувача як власник поточного каталогу, що призвело до цієї помилки. Після перегляду та виправлення всіх дозволів я зміг встановити venv regularl


Це була саме моя проблема. Коли я перейшов до домашнього каталогу поточних користувачів, команда працювала нормально. Це має бути помилка, коли вона припускає, що python3-venv не встановлений, коли насправді виникає проблема з дозволами.
Cosmicnet

0

Всі ці пропозиції мені не допомогли.

$ apt list python3 -a
python3/now 3.6.7-1~18.04 amd64 [installed,local]
python3/bionic 3.6.5-3 amd64

Так я і зробив: sudo apt-get install python3/bionic

Тепер у мене є python 3.6.5, і apt-list показав кращий список: $ apt list python3 -a python3 / bionic 3.6.5-3 amd64

З sudo apt-get install python3-venv/bionicя міг встановити pythno3-venv і все працювало.


Я активно використовую ubuntu близько 5 років, але ніколи раніше не бачив синтаксису "python3 / bionic": О, ваша відповідь вирішила мою проблему, дякую.
kodmanyagha

Радий, що це працює, я теж не знав цього синтаксису, я просто спробував, тому що "apt list" справді показував пакунки таким чином ;-) Якщо ця відповідь вам допомогла, ви можете натиснути кнопку "вгору".
Стефан

Якщо ви можете використовувати нестандартні імена пакетів, це означає, що у вас налаштовано нестандартні джерела пакетів. apt-cache policy python3/bionicможе допомогти вам з’ясувати, звідки походить цей пакет. Це не від Ubuntu.
тричі

0

У моєму випадку запуск sudo apt-get install python3.8-venvуспішний, але він показує ту ж помилку під час запуску python3 -m venv .venv.

Нарешті, ця команда працює, не змінюючи локаль.

python3.8 -c 'import venv; venv.create(".venv", with_pip=True)'


0

Це спрацювало для мене ... По-перше, я біг

sudo apt-get update

Тоді

sudo apt-get install -y python3-venv zip


-1
sudo apt-get update 

Працював у мене.

Редагувати: Я хотів би знати, в чому саме була проблема, але я не знаю. Я спробував запустити команди, як описано запитувачем, і це дало помилку, після чого я оновив, і це спрацювало. :-D


3
Будь ласка, детальніше поясніть, чому ваша відповідь вирішує питання.
RyanNerd

1
Запуск команд та оновлення дерева пакетів не є відповіддю, будь ласка, уточнюйте
Андрес Феліпе,

-2

Нічого з цього у мене не спрацювало. Я використовую ubuntu 18.04. Просто повністю видалив анаконду і все запрацювало. Опубліковано про всяк випадок, коли комусь допоможе. Для видалення команд: https://linuxize.com/post/how-to-install-anaconda-on-ubuntu-18-04/

rm -rf ~/anaconda3
export PATH="/home/linuxize/anaconda3/bin:$PATH" 
rm -rf ~/.condarc ~/.conda ~/.continuum
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.