¿Hay alguna forma de hacer que pip
bien con varias versiones de Python? Por ejemplo, quiero usar pip
para instalar explícitamente las cosas en la instalación de mi sitio 2.5 o en la instalación de mi sitio 2.6.
Por ejemplo, con easy_install
, uso easy_install-2.{5,6}
.
Y, sí, sé sobre virtualenv y no, no es una solución para este problema en particular.
La recomendación actual es usar python -m pip
, donde python
es la versión de Python que te gustaría usar. Esta es la recomendación porque funciona en todas las versiones de Python y en todas las formas de virtualenv. Por ejemplo:
# The system default python: $ python -m pip install fish # A virtualenv's python: $ .env/bin/python -m pip install fish # A specific version of python: $ python-3.6 -m pip install fish
Respuesta anterior, dejada para la posteridad:
Desde la versión 0.8, Pip soporta pip-{version}
. Puedes usarlo de la misma manera que easy_install-{version}
:
$ pip-2.5 install myfoopackage $ pip-2.6 install otherpackage $ pip-2.7 install mybarpackage
EDIT : pip cambió su esquema para usar pipVERSION
lugar de pip-VERSION
en la versión 1.5. Deberías usar lo siguiente si tienes pip >= 1.5
:
$ pip2.6 install otherpackage $ pip2.7 install mybarpackage
Ver https://github.com/pypa/pip/pull/1053 para más detalles
Referencias:
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 -3.4 -m pip install pyfora
py -2.7 -m pip install pyfora
Alternativamente, puedes llamar al ejecutable de python deseado directamente de esta manera:
/path/to/python.exe -m pip install pyfora
/path/to/python2.{5,6} /path/to/pip install PackageName
no funciona?
Para que esto funcione en cualquier versión de python que no tenga pip ya instalado, necesita descargar pip y hacer python*version* setup.py install
. Por ejemplo python3.3 setup.py install
. Esto resuelve el error de importación en los comentarios. (Según lo sugerido por @hbdgaf)
Tenía Python 2.6 instalado de forma predeterminada (Amazon EC2 AMI), pero necesitaba python2.7 más algunos paquetes externos para mi aplicación. Suponiendo que ya instaló python2.7 junto con python predeterminado (2.6 en mi caso). Aquí es cómo instalar pip y paquetes para python2.7 no predeterminado
Instale pip para su versión de python:
curl -O https://bootstrap.pypa.io/get-pip.py python27 get-pip.py
Use la versión específica de pip para instalar paquetes:
pip2.7 install mysql-connector-python --allow-external mysql-connector-python
Me funcionó en windows de esta manera:
Cambié el nombre de los archivos python python.py y pythonw.exe a python3.py pythonw3.py
Entonces acabo de ejecutar este comando en el indicador:
python3 -m pip install package
Otras respuestas muestran cómo usar pip con Python 2.X y 3.X, pero no muestra cómo manejar el caso de múltiples distribuciones de Python (por ejemplo, Python original y Python de Anaconda) .
Tengo un total de 3 versiones de Python: Python 2.7 original y Python 3.5 y Anaconda Python 3.5.
Aquí es cómo instalo un paquete en:
Python 3.5 original:
/usr/bin/python3 -m pip install python-daemon
Python 2.7 original:
/usr/bin/python -m pip install python-daemon
Anaconda Python 3.5 :
python3 -m pip install python-daemon
o
pip3 install python-daemon
Más simple, ya que Anaconda anula los binarios de Python originales en el entorno del usuario.
Por supuesto, la instalación en anaconda se debe hacer con el comando conda
, esto es solo un ejemplo.
Además, asegúrese de que pip esté instalado para ese python específico. Es posible que necesite instalar pip manualmente. Esto funciona en Ubuntu 16.04:
sudo apt-get install python-pip
o
sudo apt-get install python3-pip
Me encontré con este problema recientemente y descubrí que no estaba obteniendo el pip correcto para Python 3, en mi sistema Linux que también tiene Python 2.
Primero debe asegurarse de haber instalado pip para su versión de python:
Para Python 2:
sudo apt-get install python-pip
Para Python 3:
sudo apt-get install python3-pip
Luego, para instalar paquetes para una versión de Python u otra, simplemente use lo siguiente para Python 2:
pip install
o para Python 3:
pip3 install
pip es también un paquete de python. Por lo tanto, la forma más sencilla de instalar módulos en una versión específica de Python sería la siguiente.
python2.7 /usr/bin/pip install foo
o
python2.7 -m pip install foo
Así que aparentemente hay varias versiones de easy_install
y pip
. Parece ser un gran lío. De todos modos, esto es lo que hice para instalar Django para Python 2.7 en Ubuntu 12.10:
$ sudo easy_install-2.7 pip Searching for pip Best match: pip 1.1 Adding pip 1.1 to easy-install.pth file Installing pip-2.7 script to /usr/local/bin Using /usr/lib/python2.7/dist-packages Processing dependencies for pip Finished processing dependencies for pip $ sudo pip-2.7 install django Downloading/unpacking django Downloading Django-1.5.1.tar.gz (8.0Mb): 8.0Mb downloaded Running setup.py egg_info for package django warning: no previously-included files matching '__pycache__' found under directory '*' warning: no previously-included files matching '*.py[co]' found under directory '*' Installing collected packages: django Running setup.py install for django changing mode of build/scripts-2.7/django-admin.py from 644 to 755 warning: no previously-included files matching '__pycache__' found under directory '*' warning: no previously-included files matching '*.py[co]' found under directory '*' changing mode of /usr/local/bin/django-admin.py to 755 Successfully installed django Cleaning up... $ python Python 2.7.3 (default, Sep 26 2012, 21:51:14) [GCC 4.7.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import django >>>
En Linux, Mac OS X y otros sistemas POSIX, use los comandos de Python versionados en combinación con el interruptor -m
para ejecutar la copia apropiada de pip
:
python2.7 -m pip install SomePackage python3.4 -m pip install SomePackage
(También pueden estar disponibles los comandos pip debidamente versionados)
En Windows, use el py
Python en combinación con el -m
:
py -2.7 -m pip install SomePackage # specifically Python 2.7 py -3.4 -m pip install SomePackage # specifically Python 3.4
si obtienes un error para py -3.4
entonces prueba:
pip install SomePackage
Desde aquí: https://docs.python.org/3/installing/
Aquí es cómo instalar paquetes para varias versiones que se instalan al mismo tiempo linux, mac, posix :
python2 -m pip install SomePackage # default Python 2 python2.7 -m pip install SomePackage # specifically Python 2.7 python3 -m pip install SomePackage # default Python 3 python3.4 -m pip install SomePackage # specifically Python 3.4 python3.5 -m pip install SomePackage # specifically Python 3.5 python3.6 -m pip install SomePackage # specifically Python 3.6
En Windows , use el iniciador de Python en combinación con el modificador -m:
py -2 -m pip install SomePackage # default Python 2 py -2.7 -m pip install SomePackage # specifically Python 2.7 py -3 -m pip install SomePackage # default Python 3 py -3.4 -m pip install SomePackage # specifically Python 3.4
La mayoría de las respuestas aquí abordan el problema, pero quiero agregar algo que me estaba confundiendo continuamente con respecto a la creación de una instalación alternativa de python en /usr/local
en CentOS 7. Cuando instalé allí, parecía que pip estaba funcionando ya que Podría usar pip2.7 install
e instalaría módulos. Sin embargo, lo que no pude entender fue por qué mi versión recién instalada de python no veía lo que estaba instalando.
Resulta que en CentOS 7 ya hay un python2.7 y un pip2.7 en la carpeta /usr/bin
. Para instalar pip para su nueva distribución de Python, debe indicar específicamente a sudo que vaya a /usr/local/bin
sudo /usr/local/bin/python2.7 -m ensurepip
Esto debería tener instalado pip2.7 en su carpeta /usr/local/bin
junto con su versión de python. El truco es que cuando desea instalar módulos, necesita modificar la variable sudo $PATH
para incluir /usr/local/bin
o debe ejecutar
sudo /usr/local/bin/pip2.7 install
Si quieres instalar un nuevo módulo. Me tomó una eternidad recordar que el sudo
no estaba viendo inmediatamente /usr/local/bin
.
Contexto: Archlinux
Acción:
Instale python2-pip:
sudo pacman -S python2-pip
Ahora tienes pip2.7:
sudo pip2.7 install boto
Prueba (en mi caso necesitaba ‘boto’):
Ejecuta los siguientes comandos:
python2 import boto
Éxito: No hay error.
Salir: Ctrl + D
por ejemplo, si configura otras versiones (por ejemplo, 3.5) como predeterminadas y desea instalar pip para python 2.7:
Puede ir a, por ejemplo, C: \ Python2.7 \ Scripts y luego ejecutar cmd desde esa ruta. Después de eso puede ejecutar pip2.7 instalar su paquete …
Eso instalará el paquete para esa versión de Python.
Aquí está mi opinión sobre el problema. Trabaja para Python3. Las principales características son:
Los pasos son los siguientes:
Si tiene varias versiones extra de python instaladas de alguna otra manera, deshágase de ellas, por ejemplo, elimine $ HOME / .local / lib / python3.x , etc. (también las instaladas globalmente). Sin embargo, no toques la versión predeterminada de python3 de tu sistema.
Descargue el código fuente para diferentes versiones de Python bajo la siguiente estructura de directorio:
$HOME/ python_versions/ : download Python-*.tgz packages here and "tar xvf" them. You'll get directories like this: Python-3.4.8/ Python-3.6.5/ Python-3.xy/ ...
En cada directorio “Python-3.xy /”, haga lo siguiente (¡ NO use “sudo” en ninguno de los pasos!):
mkdir root ./configure --prefix=$PWD/root make -j 2 make install virtualenv --no-site-packages -p root/bin/python3.x env
En “python_versions /” crea archivos como este:
env_python3x.bash: #!/bin/bash echo "type deactivate to exit" source $HOME/python_versions/Python-3.xy/env/bin/activate
Ahora, cada vez que desee optar por python3.x, haga
source $HOME/python_versions/env_python3x.bash
para entrar en el virtualenv
Mientras esté en el virtualenv, instale sus paquetes favoritos de python con
pip install --upgrade package_name
Para salir de la versión virtualenv y python solo escribe “desactivar”
Es probable que esto sea algo completamente incorrecto (soy un PyOton Noob), pero simplemente fui y edité el archivo PIP.
#!/usr/bin/env python3 <-- I changed this line. # -*- coding: utf-8 -*- import re import sys from pip._internal import main if __name__ == '__main__': sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) sys.exit(main())
Instalación de múltiples versiones de Python y sus respectivos paquetes.
Versión de Python en la misma máquina de Windows: 2.7, 3.4 y 3.6
Instalación de las 3 versiones de Python :
PATH para las 3 versiones de Python :
Renombrando los ejecutables para versiones :
Comprobado el símbolo del sistema con todas las versiones:
Instalando los paquetes por separado para cada versión.