Instale un módulo usando pip para una versión específica de Python

138

En Ubuntu 10.04 por defecto está instalado Python 2.6, luego he instalado Python 2.7. ¿Cómo puedo usar pip installpara instalar paquetes para Python 2.7?

Por ejemplo:

pip install beautifulsoup4

por defecto instala BeautifulSoup para Python 2.6

Cuando lo hago:

import bs4

en Python 2.6 funciona, pero en Python 2.7 dice:

No module named bs4
Torayeff
fuente

Respuestas:

54

Utilice una versión de pipinstalado contra la instancia de Python en la que desea instalar nuevos paquetes.

En muchas distribuciones, puede haber paquetes separados python2.6-pipy python2.7-pip, invocados con nombres binarios como pip-2.6y pip-2.7. Si pip no está empaquetado en su distribución para el destino deseado, puede buscar herramientas de configuración o un paquete de instalación sencilla, o usar virtualenv (que siempre incluirá pip en un entorno generado).

El sitio web de pip incluye instrucciones de instalación , si no puede encontrar nada dentro de su distribución.

Charles Duffy
fuente
66
No tengo ni pip-2.6 ni pip-2.7
torayeff
1
@torayeff ¿Buscó paquetes pip específicos de la versión? El empaquetado es específico de la distribución, por lo que tendrá que hacer un poco de trabajo usted mismo (buscar en los listados de paquetes disponibles) o solicitar un canal de soporte específico de Ubuntu.
Charles Duffy
1
Intenté este easy_install -d /usr/local/lib/python2.7/ beautifulsoup4, pero no funciona, ¿qué quieres decir con trabajo de campo?
torayeff
3
@torayeff lo mismo se aplica a easy_install que a pip: debe usar una versión creada contra el intérprete para el que está intentando instalar paquetes. "trabajo preliminar" es un coloquialismo que se refiere al esfuerzo, generalmente de una variedad que no es particularmente desafiante intelectualmente pero que puede llevar mucho tiempo (piense en un trabajo que requiere tiempo para caminar) ... en este caso, revisando el Listado de paquetes de Ubuntu.
Charles Duffy
1
@torayeff ... y, de nuevo, si no puede encontrar un paquete de pip de Ubuntu o una instalación fácil específica para Python 2.7, puede instalar pip a mano siguiendo las instrucciones que vinculé en mi respuesta; solo asegúrese de usar el python2.7ejecutable cuando siga esas instrucciones.
Charles Duffy
189

Alternativamente, dado que pipestá escrito en python, puede llamarlo con la versión de python para la que desea instalar el paquete:

python2.7 -m pip install foo
Turion
fuente
1
Como estoy instalando con pip en un entorno virtual (pero necesito ejecutarlo contra el sistema python en algunos casos, con PYTHONPATH configurado, por ejemplo, cuando se usa cualquier cosa que dependa de wxPython), este es el comando que funcionó para mí.
Aaron D
66
¡La MEJOR solución para todos los problemas de Python2 y Python3!
Harsh Vardhan Ladha
9
Debo señalar que la forma correcta de llamar a un módulo en Python es conpython 2.7 -m pip install foo
LLR
2
No puedo votar esta respuesta lo suficiente. Finalmente resolvió este doloroso problema en DietPi (distribución de frambuesa)
Pitto
1
@ Sergio Parece que -m está en el lugar equivocado para mí, creo que el comando debería ser más comopy37 -m "location-of-pip" install numpy
jrh
53

Puede ejecutar el módulo pip para una versión específica de python usando el python correspondiente:

Python 2.6:

python2.6 -m pip install beautifulsoup4

Python 2.7

python2.7 -m pip install beautifulsoup4
Tiago Coutinho
fuente
3
Recorrí internet muchas veces, buscando este comando. Supongo que la mayoría de la gente usa un entorno virtual para resolver este problema, pero para mí es una estrategia mucho más viable.
Dave Liu
¿Qué pasa si estoy dentro de mi script de Python que está llamando a pip install beautifulsoup4? ¿Cómo puedo asegurarme de que el script se invocó con el indicador -m?
Ogen
Esta fue la pieza final de mi rompecabezas, ¡gracias! pipy pip3ambos fueron encerrados a python3.X para mí, así que tuve que usar este método como una manera indirecta de la instalación de pip para python2.7
airdas
25

Puedes usar esta sintaxis

python_version -m pip install your_package

Por ejemplo. Si está ejecutando python3.5, lo nombró como "python3" y desea instalar el paquete numpy

python3 -m pip install numpy
Catbuilts
fuente
Esta es como mi respuesta, pero mejor, ya que no necesita jugar con las rutas del sistema.
Turion
Parece que esta sería la mejor respuesta. Funcionó perfecto conmigo también.
LogicOnAbstraction
18

En Windows, puede ejecutar el módulo pip mencionando la versión de python (debe asegurarse de que el iniciador esté en su ruta)

py -2 -m pip install pyfora
Mounica T
fuente
1
Thansk Funcionó en mi caso. Tengo la versión 3.4 y 3.7. Tuve que ejecutar py -3.7 -m pip install -r
require.txt
6

Alternativamente, si desea instalar una versión específica del paquete con la versión específica de python, esta es la forma

sudo python2.7 -m pip install pyudev=0.16

si el "=" no funciona, use ==

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

Requisito no válido: 'pyudev = 0.16' = no es un operador válido. ¿Quiso decir ==?

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

funciona bien

ravi.zombie
fuente
4

Python 2

sudo pip2 install johnbonjovi  

Python 3

sudo pip3 install johnbonjovi
David McCorkle
fuente
1
Esto no funciona cuando tienes múltiples instalaciones de python3. Tengo 3.4y 3.5, y no puedo pip installnada para 3.4.
byxor
3

Si tiene instaladas las versiones 2.7 y 3.x de python, simplemente cambie el nombre del archivo python exe de la versión python 3.x a algo como - "python.exe" a "python3.exe". Ahora puede usar pip para ambas versiones individualmente. Si normalmente escribe "pip install", considerará la versión 2.7 por defecto. Si desea instalarlo en la versión 3.x, debe llamar al comando como "python3 -m pip install".

Bhaskar Bhuyan
fuente
2

Para Python 3

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

Para Python 2

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

En Debian / Ubuntu, pipes el comando que se usa al instalar paquetes para Python 2, mientras que pip3es el comando que se usa al instalar paquetes para Python 3.

Gayan Weerakutti
fuente
esta respuesta cae cuando ambos tienen python3.6 y python3.7, por ejemplo. Luego, pip3 instalará paquetes solo para python3 predeterminado.
muyustan
2

para uso en python2:

py -2 -m pip install beautifulsoup4
amalik2205
fuente
1

Al igual que con cualquier otro script de Python, puede especificar la instalación de Python con la que desea ejecutarlo. Puede poner esto en su perfil de shell para guardar el alias. El se $1refiere al primer argumento que pasa al guión.

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

Tenía Python 2.7 instalado a través de a chocolate en Windows y encontré pip2.7.exeen C:\tools\python2\Scripts.

El uso de este ejecutable en lugar del pipcomando instaló el módulo correcto para mí ( requestspara Python 2.7).

CodeManX
fuente
0

Me enfrenté a un problema similar con otro paquete llamado Twisted. Quería instalarlo para Python 2.7, pero solo se instaló para Python 2.6 (versión predeterminada del sistema).

Hacer un cambio simple funcionó para mí.

Al agregar la ruta de Python 2.7 a su $PATHvariable, agréguela al frente de esta manera: PATH=/usr/local/bin:$PATHpara que el sistema use esa versión.

Si tiene más problemas, puede seguir esta publicación de blog que me ayudó: https://github.com/h2oai/h2o-2/wiki/installing-python-2.7-on-centos-6.3.- siga- esta secuencia -exactamente para centos-solo máquina

Raji
fuente