Es normal que un programador de Python tenga que lidiar con múltiples proyectos en diferentes entornos y con diferentes versiones de Python.
En entornos Unix, gestionar versiones de Python es relativamente sencillo gracias a pyenv. Pese a su nombre, pyenv hace una sola cosa: gestiona versiones de Python.
- Instala pyenv con brew:
$ brew install pyenv
- Lista las versiones disponibles de Python:
$ pyenv install --list
Esto no sólo muestra las versiones de implementación de referencia CPython sino también otros intérpretes o distribuciones como PyPy o anaconda.
- Busca en la lista la última versión de Python 3.5 (
3.5.X
) e instálala con:
$ pyenv install 3.5.6
Los nombres del intérprete que son sólo versiones como 2.7
o 3.5.6
se
refieren al intérprete de referencia CPython.
El procedimiento toma un rato porque pyenv se descarga el código fuente del intérprete y lo compila en tu máquina.
- Instala la última versión de Python 2 con:
$ pyenv install 2.7
- Puedes listar y comprobar la versión activada en estos momentos con:
$ pyenv versions
La versión con el asterisco *
es la activada.
- Para activar una nueva versión a nivel de sesión de la terminal, ejecuta:
$ pyenv shell 2.7
Comprueba la versión de Python iniciando el intérprete interactivo:
$ python
- Cambia a la versión Python 3.5. Comprueba el cambio.
- El port Windows de pyenv (no probado)
- Otra alternativa consiste en utilizar virtualenv
Cada intérprete/instalación de Python es un entorno de Python distinto, con su propia biblioteca estándar y un espacio para instalar paquetes de terceros.
Se considera una buena práctica no contaminar la instalación del sistema con librerías específicas de los proyectos que estás desarrollando, sino que sólo contenga herramientas transversales.
Los proyectos deben ejecutarse en sus propios entornos, con sólo las dependencias necesarias para su correcto funcionamiento.
- Asegúrate de que el intérprete activo es Python 3.7
$ python3 --version
- Entra en la carpeta del máster y crea un nuevo entorno virtual con el comando:
$ python3 -m venv .venv
Esta carpeta no se añade a git y aparece en el archivo .gitignore
.
- Activa el entorno virtual con el comando:
$ source .venv/bin/activate
- Comprueba que el entorno está activado con el comando:
$ type python3
Y comprueba que el intérprete está dentro del directorio venv
- Puedes desactivar el entorno con el comando:
$ deactivate
Comprueba dónde está ahora el intérprete.
-
Vuestra shell zsh debería activar los entornos virtuales automáticamente al entrar en uno de ellos.
-
Abre el proyecto del máster con PyCharm y asegúrate de que usa el intérprete del entorno virtual y no el del sistema.
En Python 2 no existía el módulo venv
pero el problema existía igualmente.
La herramienta virtualenv nació
para solventar este problema. Virtualenv no sólo gestiona entornos virtuales
sino que, además, como pyenv, es capaz de administrar distintas versiones de
Python.
Un subconjunto de la funcionalidad de virtualenv se implementó en el módulo
venv
de Python 3. Aun así, virtualenv ofrece más posibilidades que venv
.
El comando pip (pip3
en Python 3 y también pip
si estais en un entorno Python 3), instalado en todos los entornos virtuales a partir de Python
3.4 permite instalar software de terceros desde PyPI,
el índice de paquetes de Python.
Un paquete es software Python bajo un espacio de nombres.
- Busca el software iPython con:
$ pip3 search ipython
- Instala iPython con:
$ pip3 install ipython
- Muestra información de la instalación con:
$ pip3 show ipython
- Puedes desinstalar software con:
$ pip3 uninstall ipython
- Puedes listar todo el software instalado con:
$ pip3 list
- Conoce dónde están instalados los paquetes con:
$ python3 -m site
En temas posteriores veremos la estructura de un paquete y cómo se instala en el entorno de Python. Por el momento, conocer pip a nivel de usuario es suficiente.