Rendre le projet installable

Rendre votre projet installable signifie que vous pouvez créer un fichier distribuable et l’installer dans un autre environnement, comme vous avez installé Flask dans votre environnement. Cela vous permet de déployer votre projet de la même façon que vous installez n’importe quelle autre librairie en utilisant les outils Python standard pour tout gérer.

L’installation vient avec d’autres bénéfices que ne sont pas immédiatement évidents sur base du tutoriel ou comme utilisateur Python débutant, dont:

  • Maintenant, Python et Flask comprennent comment utiliser le package flaskr uniquement car vous l’exécutez depuis le répertoire de votre projet. L’installation vous permettra de l’importer quelle que soit la façon dont il a été lancé.

  • Vous pouvez gérer les dépendances de votre projet comme d’autres packages, et donc il vous suffira d’exécuter pip install yourproject.whl pour les installer.

  • Les outils de test peuvent isoler votre environnement de test de votre environnement de développement.

Note

Cette information arrive assez tard dans ce tutoriel, mais dans vos projets futurs vous devriez toujours commencer par cela.

Décrivez le projet

Le fichier setup.py décrit votre projet et les fichiers qui en font partie.

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 indique à Python les répertoires contenant les packages (et les fichiers Python qu’ils contiennent) à inclure. find_packages() trouve ces répertoires automatiquement et donc vous ne devez pas les spécifiez vous-même. Pour inclure d’autres fichiers, comme les répertoires contenant vos fichiers statiques et vos templates, utilisez include_packages_data. Python utilise un autre fichier dénommé MANIFEST.in pour indiquer ces autres données.

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

Cela indique à Python de copier tous les fichiers qui se trouvent dans les répertoires static et templates ainsi que le fichier schema.sql mais d’exclure pour les fichiers compilés.

Consultez le document official packaging guide our une autre explication des fichiers et des options utilisés.

Installer le projet

Utilisez pip pour install votre projet dans l’environnement virtuel.

$ pip install -e .

Ceci indique à pip de chercher setup.py dans le répertoire courant et de l’installer dans le mode editable ou development. Le mode editable indique que si vous faites des modifications à votre code, vous devrez seulement le réinstaller si vous changez les méta-données du projet comme ses dépendances.

Vous pouvez vérifier que le projet est maintenant installé en tapant 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

Rien ne change concernant la façon dont vous avec lancé le projet jusque maintenant. La variable d’environnement FLASK_APP est toujours mise à flaskr et flask run` lance toujours l'application, mais vous pouvez la lancer depuis n'importe où, pas juste depuis le répertoire  ``flask-tutorial.

Continue vers Couverture des tests.