Ich bin daran interessiert, die empfohlene Installationsmethode für pip3 für python3.6 (Stand Mai 2018) für die aktuelle Version von centos7 (7.5.1804) und die akzeptierte Antwort auf Wie installiere ich pip in CentOS 7? scheint veraltet zu sein, weil:
yum search -v pip
ausgänge (ua):
python2-pip.noarch : A tool for installing and managing Python 2 packages
Repo : epel
python34-pip.noarch : A tool for installing and managing Python3 packages
Repo : epel
und python34-pip
scheint ein (neuerer) einfacher Weg als die akzeptierte Antwort von Wie installiere ich pip in CentOS 7? :
Sudo yum installieren Sie python34-setuptools
Sudo easy_install-3.4 pip
Aber da die auf meinem Rechner installierten Python-Versionen 2.7.5 und 3.6.3 sind, warum ist es Python34-Pip und nicht Python36-Pip? Ist pip für 3.4+ gleich (bis zur aktuellen Version 3.6.3)?
Ist pip gleich für 3.4+
Nein, ist es nicht. Eine einzelne pip
-Installation bedient eine einzige Python-Distribution (pip2.7
pip3.4
/pip3.5
etc).
Seit Python 3.5 ist pip
bereits in der Python-Distribution enthalten, sodass Sie statt pip
einfach python3.6 -m pip
ausführen können.
Python 3.6 ist in CentOS 7 Vanilla Repo nicht verfügbar. Normalerweise greife ich auf _/IUS repo zurück, wenn Sie einen neuen Python auf CentOS installieren müssen. Es gibt immer die aktuellste Python-Version, wobei die aktuelle Version 3.6.5 ist. Es bietet auch ein entsprechendes pip
-Paket an.
$ yum install https://centos7.iuscommunity.org/ius-release.rpm
$ yum install python36u python36u-devel python36u-pip
Leider bietet IUS noch kein Paket für Python 3.7 . Wenn Sie also Python 3.7 auf CentOS 7 suchen, ist das Erstellen aus Quelle die einzige Option.
yum
keine Option istSie sollten die in this answer beschriebene Bootstrapping-Lösung vorziehen, da dies die zuverlässigste Methode ist, um eine funktionsfähige pip
zu installieren.
Um pip für python 3.6 auf CentOS 7 zu installieren, müssen Sie es ausführen
$ python3.6 -m ensurepip
Befolgen Sie diese Befehle in Centos 7
yum install python36
yum install python36-devel
yum install python36-setuptools
easy_install-3.6 pip
so überprüfen Sie die Pip-Version:
pip3 -V
pip 18.0 from /usr/local/lib/python3.6/site-packages/pip-18.0-py3.6.Egg/pip (python 3.6)
Es gibt jetzt ein python36-pip
- Paket in EPEL.
Stellen Sie zunächst sicher, dass EPEL verfügbar ist, und installieren Sie epel-release
, Falls es fehlt (dieser Befehl funktioniert auf einem neuen System; ymmv hängt von spezifischen Konfigurationen von Yum Repositorys) ab):
if ! { yum makecache fast >/dev/null 2>&1 && yum --cacheonly repolist enabled | grep -qE '^epel\/' ; }; then
yum install --assumeyes epel-release
fi
Wenn Sie python36-pip
Installieren, werden auch python36
, python36-libs
Und python36-setuptools
Installiert:
yum install --assumeyes python36-pip
Sie können jetzt die Version überprüfen (ja, sie ist alt, aber es kommt von EPEL):
$ pip3 --version
pip 8.1.2 from /usr/lib/python3.6/site-packages (python 3.6)
Wenn Sie nicht von den Dateien abweichen möchten, die im Paket python36-pip
Enthalten sind, und keine Warnungen bezüglich des Verfalls von pip anzeigen möchten, lesen Sie https://stackoverflow.com/a/ 46288945/534275 zum Stummschalten der Nachrichten.
Pip ist aus irgendeinem Grund nicht in der EPEL-Version von Python 3.6 enthalten. Ich gehe davon aus, dass eine anständige Anzahl von Menschen (wie ich) diese Seite deshalb finden wird.
$ Sudo yum install -y python36
...
$ python36 -m pip
/usr/bin/python36: No module named pip
In diesem Fall war das Setuptools-Paket die einfachste Lösung.
$ Sudo yum install python36-setuptools
$ Sudo easy_install-3.6 pip
...
$ python36 -m pip --version
pip 18.0 from /usr/local/lib/python3.6/site-packages/pip-18.0-py3.6.Egg/pip (python 3.6)
Falls Sie sehen, dass pip3 mit python2 path verknüpft ist:
$ pip3 -V
pip 8.1.2 von /usr/lib/python2.7/site-packages/pip (Python 2.7)
Sie werden wahrscheinlich bekommen:
$ pip3 install --upgrade pip
TypeError: parse () hat ein unerwartetes Schlüsselwortargument 'transport_encoding' erhalten
Versuchen Sie dann, den Befehls-Cache mit hash -r zu löschen. Das hat bei mir geklappt:
# Install Python 3:
Sudo yum install python36 -y
# Install & Upgrade pip3
Sudo python36 -m pip install --upgrade pip
# Validate pip3 installation:
Sudo python3.6 -m ensurepip
# Successfully installed pip-10.0.1 setuptools-39.0.1
# Clear commands cache
hash -r
# might be required if getting in bash: /usr/bin/pip3: No such file or directory)
pip3 -V
# pip 19.0.3 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
which pip3
# /usr/local/bin/pip3
pip2 -V
# pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)
which pip2
# /usr/local/bin/pip2
# Install your Python3 module:
Sudo /usr/local/bin/pip3 install {required module for python3}
Versuche dies::
Sudo yum update
Sudo yum install -y python36u python36u-libs python36u-devel python36u-pip
Für mich perfekt arbeiten.