Wie installiere ich pip für Python 3.6 auf Ubuntu 16.10?

40

Ich möchte zunächst darauf hinweisen, dass diese Frage wie ein Duplikat wirkt, aber nicht. Alle Fragen, die ich hier auf Ask Ubuntu sah, betrafen pip für Python 3 und ich spreche von Python 3.6. Die damals verwendeten Schritte funktionieren nicht für Python 3.6.

  1. Ich habe ein klares Ubuntu 16.10-Image aus dem offiziellen Docker Store erhalten .
  2. Lauf apt-get update
  3. Lauf apt-get install python3.6
  4. Lauf apt-get install python3-pip
  5. Lauf pip3 install requests bs4
  6. Lauf python3.6 script.py

Ist ModuleNotFoundErrorunten angekommen :

 Traceback (most recent call last):
    File "script.py", line 6, in <module>
     import requests
 ModuleNotFoundError: No module named 'requests'

Pythons und Pips, die ich in der Maschine habe:

python3
python3.5
python3.5m
python3.6
python3m
python3-config
python3.5-config
python3.5m-config
python3.6m
python3m-config  

pip
pip3
pip3.5
JChris
quelle
Die Frage wurde an Stack Overflow
wjandrea

Antworten:

44

Diese Antwort setzt voraus, dass Sie python3.6installiert haben. Für python3.7Ersetzen 3.6mit 3.7. Zum python3.8Ersetzen 3.6durch 3.8, es kann aber auch zuerst das python3.8-distutilsPaket erforderlich sein .

Installation mit sudo

Bei der Installationpip wird durch Verwenden von curl(anstelle von wget) vermieden, dass die Datei auf die Festplatte geschrieben wird.

curl https://bootstrap.pypa.io/get-pip.py | sudo -H python3.6

Das -HFlag ist offensichtlich erforderlich sudo, um Fehler wie die folgenden bei der Installation von pip für einen aktualisierten Python-Interpreter zu vermeiden:

Das Verzeichnis '/home/someuser/.cache/pip/http' oder das übergeordnete Verzeichnis gehört nicht dem aktuellen Benutzer und der Cache wurde deaktiviert. Bitte überprüfen Sie die Berechtigungen und den Eigentümer dieses Verzeichnisses. Wenn Sie pip mit sudo ausführen, möchten Sie möglicherweise das -H-Flag von sudo.

Das Verzeichnis '/home/someuser/.cache/pip' oder das übergeordnete Verzeichnis gehört nicht dem aktuellen Benutzer und die Zwischenspeicherung von Rädern wurde deaktiviert. Überprüfen Sie die Berechtigungen und den Eigentümer dieses Verzeichnisses. Wenn Sie pip mit sudo ausführen, möchten Sie möglicherweise das -H-Flag von sudo.

Installation ohne Sudo

curl https://bootstrap.pypa.io/get-pip.py | python3.6 - --user

Dies kann manchmal eine Warnung auslösen, wie zum Beispiel:

WARNUNG: Das Script Wheel ist in '/home/ubuntu/.local/bin' installiert, das sich nicht in PATH befindet. Fügen Sie dieses Verzeichnis zu PATH hinzu, oder verwenden Sie --no-warn-script-location, wenn Sie diese Warnung unterdrücken möchten.

Nachprüfung

Danach kann erwartet werden pip, dass pip3, und pip3.6alle auf dasselbe Ziel verweisen:

$ (pip -V && pip3 -V && pip3.6 -V) | uniq
pip 18.0 from /usr/local/lib/python3.6/dist-packages (python 3.6)

Natürlich können Sie alternativ auch verwenden python3.6 -m pip.

$ python3.6 -m pip -V
pip 18.0 from /usr/local/lib/python3.6/dist-packages (python 3.6)
Acumenus
quelle
5
Das Skript scheint davon auszugehen, dass python3.6die Setup-Tools / die einfache Installation funktionieren. Aus diesem Grund hat es bei mir nicht funktioniert. Ich habecurl https://bootstrap.pypa.io/ez_setup.py -o - | python3.6 && python3.6 -m easy_install pip
FirefoxMetzger
Ich habe auf Ubuntu 14.04 installiert python3.6und python3.6-devab ppa:jonathonf/python-3.6. Ich bin mir nicht sicher, ob ich setuptools einfach vergessen habe oder ob es kaputt gegangen ist, aber es hat zu der Zeit nicht funktioniert.
FirefoxMetzger
Es verfälscht Ihre Antwort in keiner Weise =) Es ist nur eine Ergänzung für den Fall, dass jemand auf dasselbe (hoffentlich ungewöhnliche) Problem stößt.
FirefoxMetzger
@ABB Wenn ich will pip -Vsein python 2.7und pip3 -V && pip3.6 -Vsein , python 3.6wie kann ich tun?
Benyamin Jafari
1
Sie können wget -O -das Ergebnis auch auf stdout streamen:wget -O - https://bootstrap.pypa.io/get-pip.py | sudo -H python3.6
ingomueller.net
16

Ich habe eine Antwort auf Stapelüberlauf.

Quelle: https://stackoverflow.com/a/44254088/1812319

Angenommen, Sie haben ein System, auf dem Ubuntu 16.04, 16.10 oder 17.04 ausgeführt wird, und möchten, dass Python 3.6 das Standard-Python ist.

Wenn Sie Ubuntu 16.04 LTS verwenden, müssen Sie einen PPA verwenden:

sudo add-apt-repository ppa:jonathonf/python-3.6  # (only for 16.04 LTS)

Führen Sie dann Folgendes aus (dies funktioniert sofort unter 16.10 und 17.04):

sudo apt update
sudo apt install python3.6
sudo apt install python3.6-dev
sudo apt install python3.6-venv
wget https://bootstrap.pypa.io/get-pip.py
sudo python3.6 get-pip.py
sudo ln -s /usr/bin/python3.6 /usr/local/bin/python3
sudo ln -s /usr/local/bin/pip /usr/local/bin/pip3

# Do this only if you want python3 to be the default Python
# instead of python2 (may be dangerous, esp. before 2020):
# sudo ln -s /usr/bin/python3.6 /usr/local/bin/python

Wenn Sie alle oben genannten Schritte ausgeführt haben, sollte jeder der folgenden Shell-Befehle angeben Python 3.6.1(oder eine neuere Version von Python 3.6):

python --version   # (this will reflect your choice, see above)
python3 --version
$(head -1 `which pip` | tail -c +3) --version
$(head -1 `which pip3` | tail -c +3) --version
JChris
quelle
1
"Kein Modul namens pip"
Turtles Are Cute
Versuchen Sie es mit a sudo apt get updateund, sudo apt get upgradebevor Sie den Befehl ausführen.
JChris
Danke für die Hilfe; sehr geschätzt. Während der Fehlerbehebung habe ich mein System in einen Zustand versetzt, in dem ich mich gerade anmelde, und es sieht so aus, als ob die einfachste Lösung eine Neuformatierung / Neuinstallation ist.
Turtles Are Cute