python - mac - upgrade pip windows
pip: tratar con varias versiones de Python? (16)
¿Hay alguna manera de hacer que pip
juegue bien con múltiples versiones de Python? Por ejemplo, quiero usar pip
para instalar cosas explícitamente 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.
Aquí está mi opinión sobre el problema. Trabaja para Python3. Las principales características son:
- Cada versión de Python se compila desde la fuente
- Todas las versiones se instalan localmente
- No destruye la instalación de Python predeterminada de su sistema de ninguna manera
- Cada versión de Python está aislada con virtualenv
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.x.y/ ...
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.x.y/env/bin/activate
Ahora, en cualquier momento 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"
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
>>>
Contexto: Archlinux
Acción:
Instala 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
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
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
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
Funcionó para mí 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
La recomendación actual es usar python -m pip
, donde python
es la versión 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:
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 <module>
Si desea instalar un nuevo módulo. Me tomó una eternidad recordar que sudo
no estaba viendo inmediatamente /usr/local/bin
.
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 debes asegurarte de haber instalado pip para tu 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 <package>
o para Python 3:
pip3 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 sencillo, 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
Puede ir, por ejemplo, a 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.
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
Utilice la versión específica de pip para instalar paquetes:
pip2.7 install mysql-connector-python --allow-external mysql-connector-python
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
por ejemplo, si configura otras versiones (por ejemplo, 3.5) como predeterminadas y desea instalar pip para python 2.7:
- descarga pip en https://pypi.python.org/pypi/pip (tar)
- descomprimir archivo tar
- cd al directorio del archivo
- sudo python2.7 setup.py instalar
/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)