Installazione di Pip-3.2 su Cygwin


85

Ho Python 3 installato su Cygwin. Tuttavia, non sono in grado di installare i pacchetti Python 3 tramite pip. C'è un modo per fare questo?


1
perchè no? hai installato pip per questa installazione di python? che errore ottieni?
mata

Pip è installato, ma installa la versione python 2 del pacchetto. Ad esempio, il mio script che richiede pyyaml ​​ritorna ImportError: No module named yaml, anche dopo essere stato eseguito correttamente pip install pyyaml.
David Y. Stephenson

1
Quindi lo pipscript non viene eseguito con la versione corretta di Python. Prova /path/to/python3 -m pip install ...invece. Inoltre, controlla lo shebang dello script pip.
mata

@mata FYI, è installato anche Python 2. usr/bin/python3 -m pip install pyyamlritorna /usr/bin/python3: No module named pip. Così la mia domanda originale; come si installa pip-3 su cygwin?
David Y. Stephenson

1
python3 -m ensurepipe python2 -m ensurepip. Guarda python.org/dev/peps/pep-0453
gavenkoa

Risposte:


129

1) Durante l'installazione di cygwin, assicurati di installare python / python-setuptools dall'elenco. Questo installerà il pacchetto "easy_install".

2) Digita il seguente comando:

easy_install-a.b pip   

Devi sostituire a.bcon la tua versione di python che può essere 2.7 o 3.4 o qualsiasi altra cosa.


4
Questa risposta ha funzionato alla grande per me. Ho dovuto fare un paio di passaggi extra perché lavoro in un'università: per prima cosa, ho navigato nel mio percorso di installazione (c: / cygwin64 / bin /). Quindi il completamento automatico mi ha aiutato a trovare il file di installazione facile denominato leggermente diverso
easy_install

6
L'ho fatto per finire in uno stato senza uova:easy_install-2.7 pip && pip install 'pip<8' && pip install pip --upgrade
Anthony Sottile

6
per python3, usa i pacchetti python3 e python3-setuptools . È ovvio, ma ci si può dimenticare di python 3 -setuptools
simon

2
E non dimenticare la versione (cioè -2.7). Avevo un'altra distribuzione python sul mio computer e "easy_install" invocava quella piuttosto che quella di cygwin.
jtbr

44

Se hai più di un'installazione python, devi installare pip (e probabilmente anche setuptools) per ciascuna installazione separatamente.
Per fare ciò, puoi prima scaricarlo ez_setup.pyed eseguirlo con python3:

/usr/bin/python3 ez_setup.py

Questo dovrebbe installare setuptools e anche creare uno easy_installscript per la tua versione di python, ad esempio /usr/bin/easy_install-3.2, che puoi usare per installare pip:

/usr/bin/easy_install-3.2 pip

Questo installerà pip nella directory dei pacchetti del tuo sito python3 e creerà di nuovo uno script /usr/bin/pip-3.2, che potrai utilizzare per installare i pacchetti per questa versione di python.

In alternativa puoi seguire le istruzioni di installazione da qui e qui .


2
Eccellente! Sono stato in grado di risolvere il mio problema con cygwin seguendo questa risposta.

Ricevo "OSError: [Errno 13] Permission denied" questo errore durante l'installazione in cygwin. Ho i diritti di amministratore su quella macchina.
arulraj.net

2
Il link a ez_setup.py è morto
spartygw


15

Poiché OP parla specificamente di Python3, penso che sia necessario specificarlo nel caso in cui l'utente abbia già installato Python2, il che è molto probabile.

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

BTW. Ci sono diversi fork di apt-cyg , ma il meglio mantenuto è quello di kou1okada , lo adorerai .


MODIFICA: 2018-11-15

Poiché ho iniziato a non usare virtualenv , di recente ho dovuto aggiornare la mia installazione di Cygwin Python3 e ho realizzato alcune cose nel processo che avrebbero dovuto essere ovvie, ma possono essere facilmente dimenticate.

  • Quando installi e usi Python3 su Cygwin (e probabilmente sulla maggior parte delle altre distribuzioni * nix), installa solo l'interprete di base Python3 come pacchetto Cygwin. Da quel momento in poi, usa solo il programma di installazione pip .

  • Dopo aver installato o aggiornato qualsiasi pacchetto python3 usando pip , il tuo gestore di pacchetti Cygwin si lamenterà che il tuo pacchetto è "Incomplete". Questo perché pip ha sostituito / aggiornato i file in quel pacchetto. Controllare con: cygcheck.exe -c |grep Incomplete.
    Non reinstallare quei pacchetti con Cygwin.

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

Quindi quello che ho fatto è stato cancellare tutti i pacchetti Cygwin relativi a python3, tranne lo stesso Python3. Poi ho reinstallato l'unico necessario: 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

Dovrebbe anche aver reinstallato tutte le dipendenze di setuptools con gli ultimi aggiornamenti.

D'ora in poi, fatti un favore e inizia a utilizzare un ambiente virtuale.


è ensurepipnecessario a causa di cygwin? Di solito pipè a bordo, vedi qui
Timo

@Timo, per me è stato, per qualsiasi motivo mi mancava pip3 per python3
Lepidopteron

Finché hai pipinstallato, puoi sempre creare/usr/bin/ un collegamento simbolico , ma forse è più elegante utilizzare la correzione nativa per securepip . IDK se avevo già una vecchia versione o se è stata installata insieme a setuptools, ma non ho il ensurepippacchetto installato.
not2qubit

2
+1 per aver raccomandato il fork di apt-cyg di kou1okada, è di gran lunga il più completo e meglio mantenuto, lo uso da anni.
Prometeo

2

Su Windows, puoi usare pip per installare i pacchetti. Se hai più installazioni di python sotto cygwin, dai il percorso completo di python, ad es

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

Python 3

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

Nel caso in cui non sia installato pip, installalo utilizzando il comando seguente

/usr/bin/python2.7 -m ensurepip 

o

/usr/bin/python3.6 -m ensurepip

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.