Skip to content

Files

Latest commit

 

History

History
187 lines (124 loc) · 4.84 KB

File metadata and controls

187 lines (124 loc) · 4.84 KB

Instalación de Python y entornos virtuales

Es normal que un programador de Python tenga que lidiar con múltiples proyectos en diferentes entornos y con diferentes versiones de Python.

Gestión de 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.

  1. Instala pyenv con brew:
$ brew install pyenv
  1. 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.

  1. 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.

  1. Instala la última versión de Python 2 con:
$ pyenv install 2.7
  1. Puedes listar y comprobar la versión activada en estos momentos con:
$ pyenv versions

La versión con el asterisco * es la activada.

  1. 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
  1. Cambia a la versión Python 3.5. Comprueba el cambio.

Entornos virtuales

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.

  1. Asegúrate de que el intérprete activo es Python 3.7
$ python3 --version
  1. 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.

  1. Activa el entorno virtual con el comando:
$ source .venv/bin/activate
  1. Comprueba que el entorno está activado con el comando:
$ type python3

Y comprueba que el intérprete está dentro del directorio venv

  1. Puedes desactivar el entorno con el comando:
$ deactivate

Comprueba dónde está ahora el intérprete.

  1. Vuestra shell zsh debería activar los entornos virtuales automáticamente al entrar en uno de ellos.

  2. 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.

virtualenv

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.

La utilidad pip

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.

  1. Busca el software iPython con:
$ pip3 search ipython
  1. Instala iPython con:
$ pip3 install ipython
  1. Muestra información de la instalación con:
$ pip3 show ipython
  1. Puedes desinstalar software con:
$ pip3 uninstall ipython
  1. Puedes listar todo el software instalado con:
$ pip3 list
  1. 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.