¿Cómo puedo instalar varias versiones de Python en el último OS X y usarlas en paralelo?

Quiero ejecutar pruebas con varias versiones de Python en OS X 10.11, que incluyen:

  • Python 2.6 -?!
  • Python 2.7 – por defecto – resuelto
  • Python 3.4 -?!
  • Python 3.5 – instalado a través de cerveza – funciona bien
  • Conda Python 3.5 -?!

Quiero realizar las pruebas a través de tox así que tox debe poder encontrarlas. Lamentablemente, parece que brew no quiere instalar 3.4 ya que agregaron 3.5 y obviamente no quiero eliminar 3.5 uno.

Esta publicación del blog sugiere usar pyenv con la detox deseada. La configuración básica con brew requiere:

 brew install pyenv pyenv-virtualenv pyenv-virtualenvwrapper 

Luego instale las versiones de Python deseadas con pyenv install [version] , en lugar de instalar Python utilizando brew . Puedes verificar las versiones disponibles usando pyenv versions .

Finalmente, pip install detox se asegurará de que tengas tox y detox instalados. Entonces debería poder especificar las versiones de prueba deseadas en su tox.ini .

Recomiendo encarecidamente utilizar un gestor de paquetes como Anaconda , https://www.continuum.io/downloads , que facilita enormemente la instalación de diferentes virtual-envs .

Por ejemplo, para crear un entorno virtual con numpy y Python 2.7 este es el comando:

conda create --name py2_env numpy python=2.7

Y luego para cambiar a ese entorno:

source activate py2_env

pyenv es lo que quieres. Funciona muy bien muy bien:

pyenv te permite cambiar fácilmente entre varias versiones de Python. Es simple, discreto y sigue la tradición de UNIX de herramientas de un solo propósito que hacen una cosa bien. Este proyecto se bifurcó de rbenv y ruby-build, y se modificó para Python.

https://github.com/pyenv/pyenv

Instalarlo a través de Homebrew:

 $ brew update $ brew install pyenv 

Se encarga de la descarga, comstackción e instalación de varios pitones, por ejemplo:

 $ pyenv install 3.7.2 

Puede mostrarle qué versiones ha instalado y cuáles están activas:

 $ pyenv versions system 3.6.7 * 3.7.2 

Cuando estés en un nuevo directorio de proyectos, simplemente dile a pyenv qué versión de python usar allí:

 $ pyenv local 3.6.7 # Because eg tensorflow isn't compat. with 3.7 :-( 

Puede establecer una versión “predeterminada” en cualquier otro lugar:

 $ pyenv global 3.7.2 

pyenv está muy bien, pero creo que deberíamos mencionar la maravillosa biblioteca pipenv de Kenneth Reitz.

https://github.com/pypa/pipenv

Proporciona la funcionalidad de pyenv más el locking de dependencias, la compatibilidad con .env fuera de la caja y mucho más.