securepip відключений в 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

компонент securepip не викликається, і в цьому випадку створюється нове середовище.

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

Одне з варіантів - встановити системний пакет pip3 і безпосередньо використовувати модуль системного піп-програми всередині вашого віртуального середовища.

Віртуальне середовище повинне мати доступ до пакетів системних сайтів, щоб мати можливість використовувати модуль системних піп.

  1. встановити системний пакет python3

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

    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 get-pip.pyу віртуальному середовищі, оскільки це вкраде системну pipкоманду


Помилка Debian для цієї проблеми тут: bugs.debian.org/cgi-bin/bugreport.cgi?bug=901601
nnyby

1

Анаконда збуджена

Якщо ви використовуєте Anaconda або Conda, це рішення може допомогти вам:

Conda управляє самим python як пакет , так що можливе оновлення conda python, на відміну від pip, який управляє лише пакетами Python. Конда доступна в Анаконда та Мініконда (завантаження, яке легко встановити, просто за допомогою Python та conda).

дуже турбує мене, але добре, руки до клавіатури у вікні терміналу:

conda update python

Подивіться на цю картинку результат , можливо, це допоможе вам, приємного дня!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.