web-dev-qa-db-fra.com

Gestion du contenu de requirements.txt pour un environnement virtuel Python

Je crée donc une toute nouvelle application Flask à partir de zéro. Comme tous les bons développeurs le font, ma première étape a été de créer un environnement virtuel.

La première chose que j'installe dans l'environnement virtuel est Flask==0.11.1. Flask installe ses dépendances suivantes:

  • cliquez sur == 6,6
  • itsdangerous == 0,24
  • Jinja2 == 2,8
  • MarkupSafe == 0,23
  • Werkzeug == 0.11.11
  • roue == 0,24.0

Maintenant, je crée un requirements.txt pour m'assurer que tout le monde clonant le référentiel a la même version des bibliothèques. Cependant, mon dilemme est le suivant:

  • Dois-je mentionner chacune des dépendances Flask dans le requirements.txt avec les numéros de version OU
  • Dois-je simplement mentionner le numéro de version exact Flask dans le requirements.txt et j'espère que quand ils feront un pip install requirements.txt, Flask se chargera de la gestion des dépendances et téléchargera les bonnes versions des bibliothèques dépendantes
9
Amistad

Les deux approches sont valables et fonctionnent. Mais il y a une petite différence. Lorsque vous entrez toutes les dépendances dans le requirements.txt vous pourrez en épingler les versions. Si vous les omettez, il pourrait y avoir une mise à jour ultérieure et si Flask a quelque chose comme Werkzeug>=0.11 dans ses dépendances, vous obtiendrez une version plus récente de Werkzeug installée.

Il s'agit donc de mises à jour par rapport à un environnement défini. Tout ce qui vous convient le mieux.

4
Klaus D.

Une bonne chose ici est que vous utilisez virtualenv, ce qui rendra votre tâche très facile.

  1. Activez virtualenv ($source path_to_virtualenv/bin/active)
  2. Accédez au répertoire racine de votre projet
  3. Obtenez tous les packages ainsi que les dépendances dans requirements.txt

    pip freeze > requirements.txt
    
  4. Vous n'avez à vous soucier de rien d'autre que de vous assurer que la prochaine personne installe les exigences de manière récursive en suivant la commande

    pip install -r requirements.txt
    
21
Vishvajit Pathak

Vous pouvez (à partir de votre environnement virtuel actif) effectuer les opérations suivantes

pip freeze > requirements.txt

qui s'occupera automatiquement de toutes les bibliothèques/modules disponibles dans votre projet.

Le prochain développeur n'aurait qu'à émettre:

pip install -r requirements.txt
4
hjpotter92