Hacer que el proyecto sea instalable

Hacer que tu proyecto sea instalable significa que puedes construir un archivo de distribución e instalarlo en otro entorno, al igual que has instalado Flask en el entorno de tu proyecto. Esto hace que el despliegue de su proyecto sea igual que la instalación de cualquier otra biblioteca, por lo que está utilizando todas las herramientas estándar de Python para gestionar todo.

La instalación también viene con otros beneficios que podrían no ser obvios desde el tutorial o como un nuevo usuario de Python, incluyendo:

  • Actualmente, Python y Flask entienden cómo usar el paquete flaskr sólo porque lo ejecutas desde el directorio de tu proyecto. Instalarlo significa que puedes importarlo sin importar desde dónde lo ejecutes.

  • Puedes gestionar las dependencias de tu proyecto igual que otros paquetes, así que pip install tuproyecto.whl las instala.

  • Las herramientas de prueba pueden aislar el entorno de prueba del entorno de desarrollo.

Nota

Esto se está introduciendo tarde en el tutorial, pero en tus futuros proyectos deberías empezar siempre con esto.

Describa el proyecto

El archivo setup.py describe tu proyecto y los archivos que le pertenecen.

setup.py
from setuptools import find_packages, setup

setup(
    name='flaskr',
    version='1.0.0',
    packages=find_packages(),
    include_package_data=True,
    zip_safe=False,
    install_requires=[
        'flask',
    ],
)

packages le dice a Python qué directorios de paquetes (y los archivos de Python que contienen) debe incluir. find_packages() encuentra estos directorios automáticamente para que no tengas que escribirlos. Para incluir otros archivos, como los directorios static y templates, se establece include_package_data. Python necesita otro archivo llamado MANIFEST.in para decir cuáles son estos otros datos.

MANIFEST.in
include flaskr/schema.sql
graft flaskr/static
graft flaskr/templates
global-exclude *.pyc

Esto le dice a Python que copie todo en los directorios static y templates, y el archivo schema.sql, pero que excluya todos los archivos del tipo bytecode.

Consulte el tutorial oficial de empaquetado y la guía detallada para obtener más explicaciones sobre los archivos y las opciones utilizadas.

Instalar el proyecto

Utilice pip para instalar su proyecto en el entorno virtual.

$ pip install -e .

Esto le dice a pip que encuentre setup.py en el directorio actual y lo instale en modo editable o desarrollo. El modo editable significa que a medida que se realicen cambios en el código local, sólo será necesario reinstalar si se cambian los metadatos del proyecto, como sus dependencias.

Se puede observar que el proyecto se instala ahora con pip list.

$ pip list

Package        Version   Location
-------------- --------- ----------------------------------
click          6.7
Flask          1.0
flaskr         1.0.0     /home/user/Projects/flask-tutorial
itsdangerous   0.24
Jinja2         2.10
MarkupSafe     1.0
pip            9.0.3
setuptools     39.0.1
Werkzeug       0.14.1
wheel          0.30.0

Nada cambia de cómo has estado ejecutando tu proyecto hasta ahora. --app sigue siendo flaskr y flask run sigue ejecutando la aplicación, pero puedes llamarla desde cualquier lugar, no sólo desde el directorio flask-tutorial.

Continúe con Cobertura de la prueba.