Come usare pip con Python 3.x insieme a Python 2.x


196

Ho installato Python 3.x (oltre a Python 2.x su Ubuntu) e ho iniziato lentamente ad accoppiare i moduli che uso in Python 2.x.

Quindi mi chiedo, quale approccio dovrei adottare per semplificarmi la vita usando pip sia per Python 2.x che per Python 3.x?


2
Personalmente, eviterei le installazioni globali di pacchetti e userei virtualenv. Quindi usi pip dall'interno del tuo ambiente virtuale per ogni progetto e usi sempre quello giusto.
jpmc26,

Risposte:


183

L'approccio che dovresti seguire è installare pipper Python 3.2.

Puoi farlo nel modo seguente:

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

Quindi, puoi installare cose per Python 3.2 con pip-3.2e installare cose per Python 2-7 con pip-2.7. Il pipcomando finirà per indicare uno di questi, ma non sono sicuro di quale, quindi dovrai controllare.


9
È stato facile, grazie. sudo python3.2 get-pip.pyinstalla pipe pip-3.2script in /usr/local/bined entrambi usano logicamente Python 3. sudo python get-pip.pyinstalla pipe pip-2.7qui, quindi in questo caso pipusa Python 2.7. Ho creato ulteriore link per pip-3.2come pip3e testato: Perfetto! :)
theta,

6
Su Fedora, è pip3.3, cioè senza il trattino tra pip e la versione. Controlla /usr/binper vedere quali versioni di pip hai lì.
Shailen,

5
[x] Anche Ubuntu sta usando [ pip2 | pip2.7 | pip3 | pip3.4 ]. È un cambiamento pipo è diverso tra sistemi diversi?
Jon Surrell,

Dopo l'esecuzione ho avutoYou're using an outdated location for the get-pip.py script, please use the one available from https://bootstrap.pypa.io/get-pip.py
Kevin Brotcke il

Quindi fallo così. :-)
Lennart Regebro,

53

Quello che puoi anche fare è usare apt-get:

apt-get install python3-pip

Nella mia esperienza anche questo funziona abbastanza bene, inoltre ottieni tutti i vantaggi da apt-get.


2
Il 12.04 non posso farlo.
dranxo,

15
Ho usato con successo questo (cioè sudo apt-get install python3-pip) e quindi ho potuto installare i pacchetti python3 usando "sudo python3 -m pip install package".
Tom Slee,

2
Ad oggi, credo che apt-get ti offra la versione 1.5.6 obsoleta; se non vuoi un AssertionErrror durante pip freeze > requirements(o altri potenziali bug), esegui l'installazione dal sorgente per l'ultima versione e risparmia un po 'di mal di testa.
Yibo Yang,

deve essere root per l'installazionepython3-pip
Florent

Nonostante l'installazione pipusando python3.7 pipsia ancora usato come predefinito con Python 2.7 su Ubuntu 14.04 :( Sono riuscito ad aggiornare pip all'ultima versione, ad es. 19.3.1, ma sta ancora assumendo l'impostazione predefinita su Python2.7. Come utilizzarlo con Python 3.7 ?
Curious Developer il

48

Innanzitutto, installa Python 3 pip usando:

sudo apt-get install python3-pip

Quindi, per usare Python 3 pipusare:

pip3 install <module-name>

Per Python 2 pipuso:

pip install <module-name>

4
Non esiste pip Python 2, che dipende dal sistema operativo in uso. Ad esempio negli pip --versionstati di Arch Linux che è in esecuzione su Python 3.6 per impostazione predefinita.
Daniel Andrei Mincă,

questa mi sembra la soluzione più intuitiva e semplice, grazie!
gebbissimo,

15

Se non vuoi specificare la versione ogni volta che usi pip :

Installa pip:

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

ed esporta il percorso:

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

11
Potresti elaborare? Non vedo come l'installazione di distribut abbia qualcosa a che fare con il non dover specificare la versione di pip che si desidera utilizzare.
Piotr Dobrogost,

13

Il modo più breve:

python3 -m pip install package
python -m pip install package

`` (test-exif) alex @ alex-xps-13-9370: ~ / projects / oe / app / exif $ python3 -m pip install exif / usr / bin / python3: nessun modulo chiamato pip `` `
axd

@axd in quel caso prima installa pip usando sudo apt-get install python3-pip. Supponendo che tu stia usando python3.
fiveelements

5

Questo ha funzionato per me su OS X: (lo dico perché a volte è un dolore il fatto che Mac abbia la "propria" versione di ogni strumento open source, e non puoi rimuoverlo perché i "suoi miglioramenti" lo rendono unico per il funzionamento di altri dispositivi Apple e se lo rimuovi le cose iniziano a cadere a pezzi)

Ho seguito i passaggi forniti da @Lennart Regebro per ottenere pip per Python 3, tuttavia pip per Python 2 era ancora il primo nel percorso, quindi ... quello che ho fatto è stato creare un collegamento simbolico a Python 3 all'interno di / usr / bin ( in fatto ho fatto lo stesso per far funzionare i miei 2 pitoni in pace):

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

Si noti che ho aggiunto un 3alla fine, quindi sostanzialmente quello che devi fare è usare pip3invece di solo pip.

Il post è vecchio ma spero che questo possa aiutare qualcuno un giorno. questo dovrebbe teoricamente funzionare per qualsiasi sistema LINUX.


4

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


lo stesso su voidlinux
Radagast,

4

In Windows, prima installato Python 3.7 e poi Python 2.7. Quindi, utilizzare il prompt dei comandi:

pip installa python2-module-name

pip3 installa python3-module-name

È tutto


3

Nota che su msys2 ho trovato utili questi comandi:

$ pacman -S python3-pip
$ pip3 install --upgrade pip
$ pip3 install --user package_name

2

Pensato che questa sia una vecchia domanda, penso di avere una soluzione migliore

  1. Per usare pip per un ambiente python 2.x, usare questo comando -

    py -2 -m pip install -r Requisiti.txt

  2. Per usare pip per l'ambiente python 3.x, usare questo comando -

    py -3 -m pip install -r Requisiti.txt

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.