Pregunta

¿Hay alguna manera de hacer juego pip bien con múltiples versiones de Python? Por ejemplo, quiero usar pip para instalar de forma explícita lo que sea mi lugar de instalación 2.5 o 2.6 mi lugar de instalación.

Por ejemplo, con easy_install, utilizo easy_install-2.{5,6}.

Y, sí - Yo sé de virtualenv, y no hay - no es una solución a este problema en particular

.
¿Fue útil?

Solución

El recomendación actual es utilizar python -m pip, donde python es la versión de Python que le gustaría utilizar. Esta es la recomendación, ya que 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, dejó para la posteridad:

Desde la versión 0.8, Pip apoya pip-{version}. Se puede utilizar el mismo que easy_install-{version}:

$ pip-2.5 install myfoopackage
$ pip-2.6 install otherpackage
$ pip-2.7 install mybarpackage

Editar : pip cambió su esquema que se utiliza en lugar de pipVERSION pip-VERSION en la versión 1.5. Se debe utilizar la siguiente si tiene pip >= 1.5:

$ pip2.6 install otherpackage
$ pip2.7 install mybarpackage

https://github.com/pypa/pip/pull/1053 para más detalles


Referencias:

Otros consejos

En Windows, se puede ejecutar el módulo PIP usando una versión de Python dada a través de la Python lanzador , py.exe, si opta por instalar durante la instalación de Python 3.

py -3 -m pip install packagename
py -2 -m pip install packagename

Puede ser aún más específico y solicitar una sub-versión exacta de Python:

py -3.6 -m pip install packagename

Para obtener una lista de todas las versiones de Python instalados disponible a través del lanzador, ejecute:

py --list

Como alternativa, puede iniciar el ejecutable de Python deseada directamente:

C:/path/to/specific/python.exe -m pip install packagename

/path/to/python2.{5,6} /path/to/pip install PackageName no funciona?

Para que esto funcione en cualquier versión de Python que no tiene ya instalado pip es necesario 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)

tuve pitón 2.6 instalado por defecto (Amazon EC2 AMI), pero python2.7 necesaria además de algunos paquetes externos para mi aplicación. Asumiendo que ya ha instalado python2.7 junto con el pitón por defecto (2.6 en mi caso). Aquí es cómo instalar paquetes de pepita y de python2.7 no predeterminado

Instalar PIP para su versión de Python:

curl -O https://bootstrap.pypa.io/get-pip.py
python27 get-pip.py

Versión uso específico pip para instalar los paquetes:

pip2.7 install mysql-connector-python --allow-external mysql-connector-python

Se trabajó para mí en las ventanas de esta manera:

  1. Me cambió el nombre de los archivos de pitón python.py y pythonw.exe a python3.py pythonw3.py

  2. Entonces me acaba de ejecutar este comando en el símbolo:

    python3 -m pip install package

Otras respuestas muestran cómo utilizar PIP tanto con Python 2.xy 3.x, pero no muestra cómo manejar el caso de múltiples distribuciones de Python (por ejemplo. Python original y Anaconda Python) .

I tienen un total de 3 versiones de Python: Original Python 2.7 y Python 3.5 y Anaconda Python 3.5

.

Aquí es cómo instalar un paquete en:

  1. Original Python 3.5

    /usr/bin/python3 -m pip install python-daemon
    
  2. Original Python 2.7 :

    /usr/bin/python -m pip install python-daemon
    
  3. Anaconda Python 3.5

    python3 -m pip install python-daemon
    

    o

    pip3 install python-daemon
    

    Más sencillo, como binarios Python originales Anaconda anulaciones en el entorno del usuario.

    Por supuesto, la instalación en anaconda se debe hacer con el comando conda, esto es sólo un ejemplo.


Además, asegúrese de que el PIP está instalado para ese específico python.You que tenga que instalar manualmente PIP. Esto funciona de Ubuntu 16.04:

sudo apt-get install python-pip 

o

sudo apt-get install python3-pip

me encontré con este problema yo recientemente y se encontró que no estaba recibiendo el pip derecha para Python 3, en mi sistema Linux que también tiene Python 2.

En primer lugar, debe asegurarse de que ha instalado PIP para su versión de Python:

En Python 2:

sudo apt-get install python-pip

En Python 3:

sudo apt-get install python3-pip

A continuación, para instalar paquetes para una versión de Python o la otra, basta con utilizar el siguiente para Python 2:

pip install <package>

o para Python 3:

pip3 install <package>

pip es también un paquete python. Así que la forma más fácil de instalar módulos a una versión específica pitón estaría por debajo

 python2.7 /usr/bin/pip install foo

o

python2.7 -m pip install foo

Así que al parecer existen 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
>>> 

A partir de aquí: https://docs.python.org/3/installing/

Aquí es cómo instalar paquetes de diferentes 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

Windows , utilice el py Python lanzador 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, usar los comandos de Python versionados en combinación con el interruptor -m para ejecutar la copia correspondiente de pip:

python2.7 -m pip install SomePackage
python3.4 -m pip install SomePackage

(comandos de pepita apropiadamente versionados también pueden estar disponibles)

En Windows, utilice el py Python lanzador en combinación con el interruptor -m:

py -2.7 -m pip install SomePackage  # specifically Python 2.7
py -3.4 -m pip install SomePackage  # specifically Python 3.4

Si se produce un error de py -3.4 luego tratar:

pip install SomePackage

La mayoría de las respuestas aquí abordan la cuestión, pero quiero añadir algo lo que me confunde continuamente con respecto a la creación de una instalación alternativa de pitón en el /usr/local en CentOS 7. Cuando instalé allí, apareció como PIP estaba trabajando desde podría usar pip2.7 install y sería instalar módulos. Sin embargo, lo que no podía entender era por qué mi versión recién instalada de pitón no estaba viendo lo que era la instalación.

Resulta que en CentOS 7 que ya existe un python2.7 y una pip2.7 en la carpeta /usr/bin. Para instalar PIP para su nueva distribución pitón, es necesario decirle específicamente sudo para ir a /usr/local/bin

sudo /usr/local/bin/python2.7 -m ensurepip

Esto debe conseguir pip2.7 instalado en su carpeta /usr/local/bin junto con su versión del pitón. El truco es que cuando se desea instalar módulos, ya sea necesidad de modificar la variable sudo $PATH incluir /usr/local/bin o usted necesita para ejecutar

sudo /usr/local/bin/pip2.7 install <module>

Si desea instalar un nuevo módulo. Me tomó por siempre recordar que sudo no estaba viendo inmediatamente /usr/local/bin.

La instalación de múltiples versiones de Python y los respectivos paquetes.

versión Python en la misma máquina ventanas: 2,7, 3,4 y 3,6

Instalación de los 3 versiones de Python

  • Instalado el Python 2.7, 3.4 y 3.6 con el siguiente caminos

introducir descripción de la imagen aquí

PATH para todas las 3 versiones de Python :

  • Hecho de que la variable PATH (en las variables del sistema) tiene debajo de caminos incluidos - C: \ python27 \; C: \ python27 \ Scripts; C: \ Python34 \; C: \ Python34 \ Scripts; C: \ Python36 \; C: \ Python36 \ Scripts \;

Cambiar el nombre de los ejecutables para las versiones :

  • cambió el nombre ejecutable pitón en C: \ Python36 y C:. \ Python34 a python36 y python34 respectivamente

introducir descripción de la imagen aquí

A cuadros para el símbolo del sistema con todas las versiones:

introducir descripción de la imagen aquí

Instalación de los paquetes por separado para cada versión

introducir descripción de la imagen aquí

Contexto: Archlinux

Acción:
Instalar python2-pip:
sudo pacman -S python2-pip

Ahora tiene pip2.7:
sudo pip2.7 install boto

Prueba (en mi caso necesario 'boto'):
Ejecute los siguientes comandos:

python2
import boto

Éxito:. No hay error

Salida: Ctrl + D

Por ejemplo, si establece otras versiones (por ejemplo 3.5) como predeterminado y desea instalar pip para Python 2.7:

  1. https://pypi.python.org/pypi/pip ( tar)
  2. archivo tar descomprimir
  3. cd al directorio del archivo
  4. sudo python2.7 setup.py install

Se puede ir a por ejemplo C: \ Python2.7 \ Secuencias de comandos y ejecutar cmd luego de ese camino. Después de que se puede ejecutar pip2.7 instalar yourpackage ...

Esto instalará paquete para esa versión de Python.

Esta es mi opinión sobre el problema. Obras para python3. Las características principales son:

  • Cada versión Python es compilado desde el código fuente
  • Todas las versiones están instaladas localmente
  • No mangle instalación de Python por defecto de su sistema en modo alguno
  • Cada versión Python está aislado con virtualenv

Los pasos son como sigue:

  1. Si tiene varias versiones adicionales instalados pitón de alguna otra manera, deshacerse de ellos, por ejemplo, quitar $ HOME / .local / lib / python3.x , etc. (también los instalados en todo el mundo unos). No toque la versión python3 por omisión del sistema embargo.

  2. Descargar fuente para las diferentes versiones de pitón bajo la siguiente estructura de directorios:

    $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/
          ...
    
  3. En cada directorio "de Python-3.x.y /", haga lo siguiente (ver no uso "sudo" en cualquiera de los pasos!):

    mkdir root
    ./configure --prefix=$PWD/root 
    make -j 2
    make install
    virtualenv --no-site-packages -p root/bin/python3.x env
    
  4. A "python_versions /" crean archivos de la siguiente manera:

    env_python3x.bash:
    
    #!/bin/bash
    echo "type deactivate to exit"
    source $HOME/python_versions/Python-3.x.y/env/bin/activate
    
  5. Ahora, en cualquier momento que deseen optar por python3.x, hacer

    source $HOME/python_versions/env_python3x.bash
    

    para abrir el virtualenv

  6. Mientras que en el virtualenv, instale los paquetes python favoritos con

    pip install --upgrade package_name
    
  7. Para salir de la versión virtualenv y Python sólo tienes que escribir "Desactivar"

Esta es probablemente la cosa completamente incorrecta de hacer (yo soy un novato pitón), pero me acaba de entrar y editar 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())

Para las ventanas en concreto: \ ruta \ a \ -m python.exe pip instalación packageName obras.

Si tiene varias versiones, así como múltiples arquitecturas (32 bits, 64 bits) que tendrá que añadir un -32 o -64 al final de su versión.

En Windows, vaya a cmd y escribe --list py y producirá las versiones que haya instalado. La lista se verá como la siguiente:

Installed Pythons found by py Launcher for Windows
 -3.7-64 *
 -3.7-32
 -3.6-32

El comando completo como un ejemplo será:

py -3.6-32 -m pip install (package)

Si desea obtener más en profundidad, para instalar una versión específica de un paquete en una versión específica de pitón, el uso == (versión) después de que el paquete. Como un ejemplo,

py -3.6-32 -m pip install opencv-python==4.1.0.25
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top