wake-up-neo.com

Empfohlene Methode zur Installation von pip (3) auf centos7

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)?

14
shrimpdrake
  1. Ist pip gleich für 3.4+

    Nein, ist es nicht. Eine einzelne pip-Installation bedient eine einzige Python-Distribution (pip2.7pip3.4/pip3.5 etc). 

  2. 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.

  3. 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.

Bearbeiten: wenn yum keine Option ist

Sie sollten die in this answer beschriebene Bootstrapping-Lösung vorziehen, da dies die zuverlässigste Methode ist, um eine funktionsfähige pip zu installieren.

16
hoefling

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)
9
Rajiv Sharma

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.

4
Alan Ivey

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)
2
xjsc16x

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}
2
Noam Manos

Versuche dies::

Sudo yum update
Sudo yum install -y python36u python36u-libs python36u-devel python36u-pip

Für mich perfekt arbeiten. 

0
Sachin Verma