2012-06-29 4 views
126

Io uso pip e lo trovo molto utile. La scorsa settimana ho installato Python 3.2 (oltre a Python 2.7 su Ubuntu) e lentamente ho iniziato ad accoppiare i moduli che uso in Python 2.x.Come usare pip con Python 3.x insieme a Python 2.x

Quindi mi chiedo, quale approccio dovrei prendere per semplificare la mia vita usando pip per Python 2.x e Python 3.x?

+2

Personalmente, io' d evitare installazioni di pacchetti globali e utilizzare virtua lenv. Quindi utilizzi pip dall'interno del tuo ambiente virtuale per ogni progetto e utilizzi sempre quello giusto. – jpmc26

risposta

124

L'approccio da seguire è installare pip per Python 3.2.

A tale scopo, nel seguente modo:

$ curl -O https://bootstrap.pypa.io/get-pip.py 
$ sudo python3.2 get-pip.py 

Quindi, è possibile installare cose per Python 3.2 con pip-3.2 e installare cose per Python 2-7 con pip-2.7. Il comando pip finirà per puntare a uno di questi, ma non sono sicuro di quale, quindi dovrai controllare.

+8

Questo è stato facile, grazie. 'sudo python3.2 get-pip.py' installa gli script' pip' e 'pip-3.2' in'/usr/local/bin' ed entrambi usano logicamente Python 3. 'sudo python get-pip.py' installa' pip 'e' pip-2.7' qui, quindi in questo caso 'pip' usa Python 2.7. Ho aggiunto un link a 'pip-3.2' come' pip3' e testato: Perfect! :) – theta

+5

Su Fedora, è pip3.3, cioè senza il trattino tra pip e la versione. Controlla '/ usr/bin' per vedere quali versioni di pip hai lì. – shailenTJ

+2

\ [x \] Ubuntu usa anche '[pip2 | pip2.7 | pip3 | pip3.4] '. Si tratta di un cambiamento in 'pip' o diverso tra sistemi diversi? –

13

Se non si vuole avere a specificare la versione ogni volta che si utilizza pip:

Installare pip:

$ curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python3 

ed esportare il percorso:

$ export PATH=/Library/Frameworks/Python.framework/Versions/<version number>/bin:$PATH 
+10

Potresti elaborare? Non vedo come l'installazione * distribute * abbia qualcosa a che fare con non dover specificare la versione di * pip * che si desidera utilizzare. –

31

Quello che puoi fare è usare apt-get:

apt-get install python3-pip 

Nella mia esperienza funziona anche molto fluente e in più ottieni tutti i vantaggi di apt-get.

+2

Il 12.04 non posso farlo. – dranxo

+11

Ho usato con successo questo (es. Sudo apt-get install python3-pip) e poi ho potuto installare i pacchetti python3 usando "sudo python3 -m pacchetto di installazione di pip". –

+2

Ad oggi, credo che apt-get ti porti la versione 1.5.6 obsoleta; se non vuoi un AssertionErrror durante il 'pip freeze> requirements' (o altri potenziali bug), installa dal sorgente per la versione più recente e risparmia un po 'di mal di testa. –

5

Questo ha funzionato per me su OS X: (Dico questo perché a volte è un dolore che Mac ha la "propria" versione di ogni strumento open source, e non è possibile rimuoverlo perché "i suoi miglioramenti" lo rendono unico per altri roba mela al lavoro, e se si rimuove le cose cominciano a cadere appart)

ho seguito i punti forniti da @Lennart Regebro per ottenere pip per Python 3, comunque pip per Python 2 era ancora prima sul percorso, così .. . quello che ho fatto è quello di creare un link simbolico a Python 3 dentro/usr/bin (nei fatti l'ho fatto lo stesso con i miei 2 pitoni in esecuzione in pace):

ln -s /Library/Frameworks/Python.framework/Versions/3.4/bin/pip /usr/bin/pip3

avviso che ho aggiunto un 3 alla fine, quindi in pratica quello che devi fare è utilizzare pip3 invece di solo pip.

Il post è vecchio ma spero che questo aiuti qualcuno prima o poi. questo dovrebbe teoricamente funzionare per qualsiasi sistema LINUX.

3

Su Suse Linux 13.2, pip chiama python3, ma pip2 è disponibile per utilizzare la versione python precedente.

+0

lo stesso su voidlinux – Radagast

26

In primo luogo, installare Python 3 pip usando:

sudo apt-get install python3-pip 

Poi, da usare Python 3 pip uso:

pip3 install <module-name> 

Per Python 2 pip uso:

pip install <module-name> 
+1

Non c'è Python 2 pip, che dipende dal sistema operativo che stai utilizzando. Per esempio su Arch Linux 'pip --version' afferma che è in esecuzione su * python 3.6 * per impostazione predefinita. –