Installieren von Pip-3.2 auf Cygwin

84

Ich habe Python 3 auf Cygwin installiert. Ich kann Python 3-Pakete jedoch nicht über installieren pip. Gibt es eine Möglichkeit, dies zu tun?

David Y. Stephenson
quelle
1
warum nicht? Haben Sie Pip für diese Python-Installation installiert? Welchen Fehler bekommst du?
Mata
Pip ist installiert, installiert jedoch die Python 2-Version des Pakets. Zum Beispiel wird mein Skript, für das Pyyaml ​​erforderlich ist ImportError: No module named yaml, auch nach erfolgreicher Ausführung zurückgegeben pip install pyyaml.
David Y. Stephenson
1
Dann pipläuft das Skript nicht mit der richtigen Python-Version. Versuchen Sie es /path/to/python3 -m pip install ...stattdessen. Überprüfen Sie auch den Shebang des Pip-Skripts.
Mata
@mata FYI, Python 2 ist ebenfalls installiert. usr/bin/python3 -m pip install pyyamlkehrt zurück /usr/bin/python3: No module named pip. So meine ursprüngliche Frage; Wie installiert man Pip-3 auf Cygwin?
David Y. Stephenson
1
python3 -m ensurepipund python2 -m ensurepip. Schauen Sie zu python.org/dev/peps/pep-0453
gavenkoa

Antworten:

128

1) Stellen Sie bei der Installation von cygwin sicher, dass Sie die Python / Python-Setuptools aus der Liste installieren. Dadurch wird das Paket "easy_install" installiert.

2) Geben Sie den folgenden Befehl ein:

easy_install-a.b pip   

Sie müssen durch a.bIhre Python-Version ersetzen, die 2.7 oder 3.4 oder was auch immer sein kann.

moovon
quelle
4
Diese Antwort hat bei mir sehr gut funktioniert. Ich musste ein paar zusätzliche Schritte unternehmen, weil ich an einer Universität arbeite: Zuerst navigierte ich zu meinem Installationspfad (c: / cygwin64 / bin /). Dann hatte mir die automatische Vervollständigung geholfen, die leicht zu installierende einfache Installationsdatei zu finden: easy_install 2.7.9
Protomancer
6
Ich habe dies getan, um in einem Zustand ohne Eier zu enden:easy_install-2.7 pip && pip install 'pip<8' && pip install pip --upgrade
Anthony Sottile
6
Verwenden Sie für python3 die Pakete python3 und python3-setuptools . Es ist offensichtlich, aber man kann Python 3- Setuptools vergessen
Simon
2
Und vergessen Sie nicht die Version (dh -2.7). Ich hatte eine andere Python-Distribution auf meinem Computer, und 'easy_install' hat diese anstelle von Cygwins aufgerufen.
28.
44

Wenn Sie mehr als eine Python-Installation haben, müssen Sie pip (und wahrscheinlich auch setuptools) für jede Installation separat installieren.
Dazu können Sie es zuerst ez_setup.pymit python3 herunterladen und ausführen:

/usr/bin/python3 ez_setup.py

Das sollte setuptools installieren und auch ein easy_installSkript für Ihre Python-Version erstellen , z. B. /usr/bin/easy_install-3.2das Sie zum Installieren von pip verwenden können:

/usr/bin/easy_install-3.2 pip

Dadurch wird pip in Ihrem Python3-Site-Paketverzeichnis installiert und erneut ein Skript erstellt /usr/bin/pip-3.2, mit dem Sie Pakete für diese Python-Version installieren können.

Alternativ können Sie die Installationsanweisungen hier und hier befolgen .

mata
quelle
2
Ausgezeichnet! Nach dieser Antwort konnte ich mein Cygwin-Problem lösen.
Ich erhalte den Fehler "OSError: [Errno 13] Berechtigung verweigert" "während der Installation in Cygwin. Ich habe Administratorrechte auf diesem Computer.
Arulraj.net
2
Link zu ez_setup.py ist tot
spartygw
29

Ich denke, die alternativen Installationsanweisungen, die durch mata verknüpft sind, sind am einfachsten:

Laden Sie get-pip.py sicher herunter, um pip zu installieren .

Führen Sie dann Folgendes aus (für das möglicherweise Administratorzugriff erforderlich ist):

python get-pip.py
svick
quelle
2
fwiw, dies scheint stillschweigend nichts unter Cygwin zu tun - nicht sicher warum :(
Anthony Sottile
2
Funktioniert unter Babun unter Windows 10 x64
xizdaqrian
14

Da OP speziell über Python3 spricht, müssen wir dies für den Fall angeben, dass der Benutzer Python2 bereits installiert hat, was sehr wahrscheinlich ist.

# If you don't have Python3 already, use apt-cyg:
apt-cyg install python3

# First update pip, pip2 
pip2 install --upgrade pip 

# Install pip3:
python3 -m ensurepip

# Finally update pip3:
pip3 install --upgrade pip

$ pip3 -V
pip 9.0.1 from /usr/lib/python3.4/site-packages (python 3.4)

Übrigens. Es gibt mehrere Gabeln von Apt-Cyg , aber die am besten gepflegte ist die von Kou1okada , Sie werden es lieben.


EDIT: 2018-11-15

Da ich anfing, virtualenv nicht zu verwenden , musste ich kürzlich meine Cygwin Python3-Installation aktualisieren und erkannte dabei einige Dinge, die offensichtlich sein sollten, aber leicht vergessen werden können.

  • Installieren Sie bei der Installation und Verwendung von Python3 unter Cygwin (und wahrscheinlich unter den meisten anderen * nix-Distributionen) nur den grundlegenden Python3-Interpreter als Cygwin-Paket. Verwenden Sie von da an nur noch den Pip- Installer.

  • Nachdem Sie Python3-Pakete mit pip installiert oder aktualisiert haben, beschwert sich Ihr Cygwin-Paketmanager, dass es sich um Ihr Paket handelt "Incomplete". Dies liegt daran, dass pip die Dateien in diesem Paket ersetzt / aktualisiert hat. Überprüfen Sie mit : cygcheck.exe -c |grep Incomplete.
    Installieren Sie diese Pakete nicht erneut mit Cygwin.

# cygcheck.exe -c |grep Incomplete
python3-setuptools      34.3.2-1         Incomplete

Also habe ich alle Python3-bezogenen Cygwin-Pakete außer Python3 selbst gelöscht. Dann habe ich den einzigen benötigten neu installiert : python3-setuptools.

# apt-cyg remove python3-setuptools
apt-cyg install python3-setuptools

# Fix pip3 symlink (or just pip if you don't have python2)
ln -s /usr/bin/pip3.6 /usr/bin/pip3

# That also installs the Cygwin packages:  
# python3-appdirs, python3-packaging, python3-pyparsing, python3-six

# Now, update setuptools with pip:
pip3 install -U --force-reinstall --only-binary=:all: --no-clean --no-cache-dir setuptools

# pip list |grep setuptools
setuptools          40.5.0

Das hätte auch alle Setuptools- Abhängigkeiten mit den neuesten Updates neu installieren müssen .

Tun Sie sich von nun an einen Gefallen und nutzen Sie eine virtuelle Umgebung.

not2qubit
quelle
ist ensurepipwegen cygwin notwendig? Normalerweise pipist an Bord, siehe hier
Timo
@ Timo, für mich war es, aus welchem ​​Grund auch immer ich Pip3 für Python3
Lepidopteron
Solange Sie pipinstalliert haben, können Sie immer einen Symlink erstellen/usr/bin/ , aber vielleicht ist es eleganter, den nativen Enparpip- Fix zu verwenden. IDK, wenn ich bereits eine alte Version hatte oder zusammen mit installiert wurde setuptools, aber das ensurepipPaket nicht installiert ist.
not2qubit
1
+1 für die Empfehlung von kou1okadas Apt-Cyg-Gabel, die mit Abstand am besten ausgestattet und mit Abstand am besten gewartet wird und seit Jahren verwendet wird.
Prometheus
2

Unter Windows können Sie pip verwenden, um Pakete zu installieren. Wenn Sie unter cygwin mehrere Python-Installationen haben, geben Sie den vollständigen Python-Pfad an, z. B. Python 2

/usr/bin/python2.7 -m pip install pyyaml

Python 3

/usr/bin/python3.6 -m pip install pyyaml

Falls Sie pip nicht installiert haben, installieren Sie es mit dem folgenden Befehl

/usr/bin/python2.7 -m ensurepip 

oder

/usr/bin/python3.6 -m ensurepip
Nitin_k29
quelle
0

Ich habe gerade gelernt, inspiriert von https://www.scivision.co/install-pip-in-cygwin/ und der Antwort zuvor, dass Sie anstelle von pip nur pip2 für Python2 oder pip3 für Python 3 in Cygwin verwenden müssen auf Windows. Ich habe mich den ganzen Tag darüber gewundert ...

DanielW
quelle