surepip ist in Debian / Ubuntu für die Systempython deaktiviert


10

Ich versuche, eine virtuelle Umgebung für die Entwicklung meiner Django-Anwendung zu erstellen. Das Kommando, das ich benutze:

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']

Wie Sie sehen können, versuche ich, ein myvenv zu erstellen, das aufgrund des fehlenden python3-venv nicht erstellt werden kann. Ich habe dies bereits installiert, aber der Sicherstellungs-Pip fehlt. Nach der Suche scheint das System (Ubuntu 16.04) von der Verwendung des Pakets abzuraten. Könnte mir jemand helfen, dieses Problem zu umgehen?


Der eigentliche Befehl, der fehlschlägt /var/www/djangogirls/myvenv/bin/python3 -Im ensurepip ..., schlägt möglicherweise aus ganz anderen Gründen fehl.
Muru

Antworten:


12

Es gibt eine ähnliche Fehlerbericht hier

Stellen Sie sicher, dass die PIP- Komponente unter Ubuntu fehlt / deaktiviert ist

Der Weg dahin besteht darin, eine virtuelle Umgebung ohne Pip zu erstellen

python3 -m venv myvenv --without-pip

In diesem Fall wird sichergestellt, dass keine Compip- Komponente aufgerufen wird und eine neue Umgebung erstellt wird.

Das Fehlen von Pip in der virtuellen Umgebung kann jedoch ein Problem sein.

Eine Lösung besteht darin, das System pip3-Paket zu installieren und das System pip-Modul direkt in Ihrer virtuellen Umgebung zu verwenden.

Die virtuelle Umgebung muss Zugriff auf Systemstandortpakete haben, um das System-Pip-Modul verwenden zu können.

  1. Installieren Sie das System Python3 Pip-Paket

    sudo apt-get install python3-pip
  2. Erstellen Sie eine virtuelle Umgebung ohne Pip und mit Zugriff auf Systemstandortpakete

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

Sie können das System-Pip-Modul verwenden, um Python-Pakete jetzt in Ihrer virtuellen Umgebung zu installieren.

Stattdessen müssen pip install DjangoSie explizit verwenden

myvenv/bin/python3 -m pip install Django

oder Sie können zuerst Ihre virtuelle Umgebung aktivieren

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

python3 -m pip --version Möglicherweise ist es hilfreich zu sehen, welche Python-Umgebung verwendet wird.

Basierend auf Lösung gefunden hier , aber nicht vorgesehene Verwendung python get-pip.pyin virtueller Umgebung, weil es System stehlen pipBefehl


Der Debian-Fehler für dieses Problem ist hier: bugs.debian.org/cgi-bin/bugreport.cgi?bug=901601
nnyby

1

Anaconda beteiligt

Wenn Sie Anaconda oder Conda verwenden, kann diese Lösung Ihnen helfen:

Conda verwaltet Python selbst als Paket , so dass Conda Update Python möglich ist, im Gegensatz zu Pip, das nur Python-Pakete verwaltet. Conda ist in Anaconda und Miniconda erhältlich (ein einfach zu installierender Download mit nur Python und Conda).

sehr störend für mich aber gut, Hände zur Tastatur in einem Terminalfenster:

conda update python

Schauen Sie sich auf diesem Bild das Ergebnis an , vielleicht hilft Ihnen das, einen schönen Tag!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.