surepip отключен в Debian / Ubuntu для системного питона


10

Я пытаюсь создать виртуальную среду для разработки моего приложения Django. Коммандос, который я использую:

vagrant@vagrant:/var/www/djangogirls$ python3 -m venv myvenv
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: ['/var/www/djangogirls/myvenv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']


vagrant@vagrant:/var/www/djangogirls$ sudo apt-get install python3-venv
Reading package lists... Done
Building dependency tree       
Reading state information... Done
python3-venv is already the newest version (3.5.1-3).
The following packages were automatically installed and are no longer required:
  javascript-common libjs-jquery libjs-sphinxdoc libjs-underscore python-pbr python-pkg-resources
  python-six python-stevedore python3-virtualenv virtualenv virtualenv-clone
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 108 not upgraded.

vagrant@vagrant:/var/www/djangogirls$ python3 -m ensurepip
ensurepip is disabled in Debian/Ubuntu for the system python.

Python modules for the system python are usually handled by dpkg and apt-get.

    apt-get install python-<module name>

Install the python-pip package to use pip itself.  Using pip together
with the system python might have unexpected results for any system installed
module, so use it on your own risk, or make sure to only use it in virtual
environments.


vagrant@vagrant:/var/www/djangogirls$ rm -r myvenv/ 

vagrant@vagrant:/var/www/djangogirls$ python3 -m venv myvenv
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: ['/var/www/djangogirls/myvenv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']

Как вы видите, я пытаюсь создать myvenv, который не может быть создан из-за отсутствия python3-venv. Я уже установил это, но пункт проверки отсутствует. После поиска кажется, что система (Ubuntu 16.04) не рекомендует использовать пакет. Может ли кто-нибудь помочь мне обойти эту проблему?


Фактическая команда, которая терпит неудачу /var/www/djangogirls/myvenv/bin/python3 -Im ensurepip ..., может быть неудачной по совершенно другим причинам.
Муру

Ответы:


14

Существует родственное сообщение об ошибке здесь

Компонент surepip отсутствует / отключен в Ubuntu

Обходной путь - создать виртуальную среду без пипса.

python3 -m venv myvenv --without-pip

Компонент surepip не вызывается, и в этом случае создается новая среда.

Однако недостающий пункт в виртуальной среде может быть проблемой.

Одним из решений является установка системного пакета pip3 и использование системного модуля pip непосредственно в вашей виртуальной среде.

Виртуальная среда должна иметь доступ к системным пакетам сайтов, чтобы иметь возможность использовать системный модуль pip.

  1. установить системный пакет Python3

    sudo apt-get install python3-pip
  2. создать виртуальную среду без пипа и с доступом к системным пакетам сайта

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

Вы можете использовать системный модуль pip для установки пакетов Python в вашу виртуальную среду.

Вместо того pip install Django, чтобы использовать явные

myvenv/bin/python3 -m pip install Django

или вы можете сначала активировать свою виртуальную среду

source myvenv/bin/activate
python3 -m pip install Django

python3 -m pip --version Может пригодиться, чтобы увидеть, какая среда Python используется.

Основано на найденном здесь решении , но не используйте предложенное python get-pip.pyв виртуальной среде, потому что оно украдет системную pipкоманду


Ошибка Debian для этой проблемы находится здесь: bugs.debian.org/cgi-bin/bugreport.cgi?bug=901601
nnyby

1

Анаконда непроизвольная

Если вы используете Anaconda или Conda, это решение может помочь вам:

Conda управляет самим Python как пакетом , так что возможно обновление Python в отличие от pip, который управляет только пакетами Python. Conda доступна в Anaconda и Miniconda (простая в установке загрузка только с Python и conda).

очень тревожно для меня, но хорошо, руки к клавиатуре в окне терминала:

conda update python

Посмотрите на эту картину результат , может быть, это поможет вам, хорошего дня!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.