Installa un modulo usando pip per una specifica versione di Python


138

Su Ubuntu 10.04 per impostazione predefinita è installato Python 2.6, quindi ho installato Python 2.7. Come posso usare pip installper installare i pacchetti per Python 2.7.

Per esempio:

pip install beautifulsoup4

per impostazione predefinita installa BeautifulSoup per Python 2.6

Quando io faccio:

import bs4

in Python 2.6 funziona, ma in Python 2.7 dice:

No module named bs4


Risposte:


54

Utilizzare una versione di pipinstallata sull'istanza Python in cui si desidera installare nuovi pacchetti.

In molte distribuzioni, ci possono essere pacchetti separati python2.6-pipe python2.7-pip, richiamati con nomi binari come pip-2.6e pip-2.7. Se pip non è impacchettato nella distribuzione per la destinazione desiderata, è possibile cercare un setuptools o un pacchetto easyinstall oppure utilizzare virtualenv (che includerà sempre pip in un ambiente generato).

Il sito Web di pip include istruzioni di installazione , se non riesci a trovare nulla all'interno della tua distribuzione.


6
Non ho né pip-2.6 né pip-2.7
torayeff

1
@torayeff Hai cercato pacchetti pip specifici per versione? Il packaging è specifico per la distribuzione, quindi dovrai fare un po 'di lavoro da solo (cercando tra gli elenchi di pacchetti disponibili) o chiedere a un canale di supporto specifico di Ubuntu.
Charles Duffy,

1
Ho provato questo easy_install -d /usr/local/lib/python2.7/ beautifulsoup4, ma non funziona, cosa intendi con legwork?
Torayeff,

3
@torayeff si applica allo stesso modo a easy_install che a pip - dovresti usare una versione costruita contro l'interprete per cui stai cercando di installare i pacchetti. "legwork" è un colloquialismo che si riferisce allo sforzo, in genere di una varietà che non è particolarmente impegnativa dal punto di vista intellettuale ma può richiedere molto tempo (pensare in modo simile a un lavoro che richiede tempo da trascorrere in giro) ... in questo caso, rivedere il Elenchi di pacchetti Ubuntu.
Charles Duffy,

1
@torayeff ... e ancora, se non riesci a trovare un pacchetto Ubuntu di pip o una semplice installazione specifica per Python 2.7, puoi installare pip manualmente con le istruzioni a cui mi sono collegato nella mia risposta; assicurati di usare l' python2.7eseguibile quando segui queste istruzioni.
Charles Duffy,

189

In alternativa, poiché esso pipstesso è scritto in Python, puoi semplicemente chiamarlo con la versione di Python per cui vuoi installare il pacchetto:

python2.7 -m pip install foo

1
Mentre sto installando con pip in un ambiente virtuale (ma in alcuni casi devo eseguirlo con il sistema Python, con PYTHONPATH impostato, ad esempio quando si usa qualcosa che dipende da wxPython), questo è il comando che ha funzionato per me.
Aaron D,

6
MIGLIORE soluzione a tutti i problemi di Python2 e Python3!
Harsh Vardhan Ladha,

9
Dovrei notare che il modo giusto di chiamare un modulo in Python è conpython 2.7 -m pip install foo
ll

2
Non posso votare abbastanza questa risposta. Finalmente risolto questo doloroso problema con DietPi (Raspberry distro)
Pitto

1
@Sergio Sembra che -m sia nel posto sbagliato per me, penso che il comando dovrebbe essere più simile apy37 -m "location-of-pip" install numpy
jrh

53

Puoi eseguire il modulo pip per una specifica versione di Python usando il corrispondente Python:

Python 2.6:

python2.6 -m pip install beautifulsoup4

Python 2.7

python2.7 -m pip install beautifulsoup4

3
Ho cercato su internet molte volte, cercando questo comando. Immagino che la maggior parte delle persone usi un ambiente virtuale per risolvere questo problema, ma per me è una strategia molto più praticabile.
Dave Liu,

Cosa succede se mi trovo nel mio script Python che chiama pip install beautifulsoup4. Come posso assicurarmi che lo script sia stato chiamato con il flag -m?
Ogen,

Questo è stato l'ultimo pezzo del mio puzzle, grazie! piped pip3entrambi sono stati bloccati su python3.X per me, quindi ho dovuto usare questo metodo come una rotonda per installare pip per python2.7
airdas,

25

È possibile utilizzare questa sintassi

python_version -m pip install your_package

Per esempio. Se stai eseguendo python3.5, l'hai chiamato "python3" e vuoi installare il pacchetto numpy

python3 -m pip install numpy

Questa è come la mia risposta, ma meglio, dal momento che non ha bisogno di giocherellare con i percorsi di sistema.
Turion,

Sembra che questa sarebbe ora la risposta migliore. Ha funzionato perfettamente anche con me.
LogicOnAbstractions

18

In Windows, è possibile eseguire il modulo pip menzionando la versione di Python (è necessario assicurarsi che il programma di avvio sia sul proprio percorso)

py -2 -m pip install pyfora

1
Thansk. Si è svegliato nel mio caso. Ho la versione 3.4 e 3.7. Ho dovuto eseguire py -3.7 -m pip install -r Requisiti.txt per usare il pip associato a Python 3.7
rodrigorf

6

In alternativa, se si desidera installare una versione specifica del pacchetto con la versione specifica di Python, questo è il modo

sudo python2.7 -m pip install pyudev=0.16

se "=" non funziona, usa ==

x@ubuntuserv:~$ sudo python2.7 -m pip install pyudev=0.16

Requisito non valido: 'pyudev = 0.16' = non è un operatore valido. Intendi ==?

x@ubuntuserv:~$ sudo python2.7 -m pip install pyudev==0.16

funziona bene


4

Python 2

sudo pip2 install johnbonjovi  

Python 3

sudo pip3 install johnbonjovi

1
Questo non funziona quando hai più installazioni di python3. Ho 3.4e 3.5, e non posso fare pip installnulla per 3.4.
byxor,

3

Se sono installate entrambe le versioni 2.7 e 3.x di python, rinominare semplicemente il file exe python della versione 3.x python in qualcosa del tipo - "python.exe" in "python3.exe". Ora puoi usare pip per entrambe le versioni singolarmente. Se si digita normalmente "installazione pip", verrà considerata la versione 2.7 per impostazione predefinita. Se si desidera installarlo sulla versione 3.x, è necessario chiamare il comando come "python3 -m pip install".


2

Per Python 3

sudo apt-get install python3-pip
sudo pip3 install beautifulsoup4

Per Python 2

sudo apt-get install python2-pip
sudo pip2 install beautifulsoup4

Su Debian / Ubuntu, pipè il comando da usare quando si installano i pacchetti per Python 2, mentre pip3è il comando da usare quando si installano i pacchetti per Python 3.


questa risposta cade quando entrambi avete python3.6 e python3.7 per esempio. Quindi pip3 installerà i pacchetti solo per python3 predefinito.
muyustan,


1

Come con qualsiasi altro script Python, è possibile specificare l'installazione di Python con cui si desidera eseguirlo. Puoi metterlo nel tuo profilo shell per salvare l'alias. Il si $1riferisce al primo argomento che passi allo script.

# PYTHON3 PIP INSTALL V2
alias pip_install3="python3 -m $(which pip) install $1"

0

Avevo installato Python 2.7 tramite Chocolatey su Windows e l' ho trovato pip2.7.exein C:\tools\python2\Scripts.

Usando questo eseguibile invece del pipcomando ho installato il modulo corretto per me ( requestsper Python 2.7).


0

Ho riscontrato un problema simile con un altro pacchetto chiamato Twisted. Volevo installarlo per Python 2.7, ma è stato installato solo per Python 2.6 (versione predefinita del sistema).

Fare una semplice modifica ha funzionato per me.

Quando aggiungi il percorso di Python 2.7 alla tua $PATHvariabile, aggiungilo in questo PATH=/usr/local/bin:$PATHmodo in questo modo:, in modo che il sistema usi quella versione.

In caso di ulteriori problemi, puoi seguire questo post del blog che mi ha aiutato - https://github.com/h2oai/h2o-2/wiki/installing-python-2.7-on-centos-6.3.-follow-this-sequence -Esatto-per-centos-machine-only

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.