IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

environnements virtuels : quelle bonne pratique pour le fichier requirements.txt?


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2022
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juin 2022
    Messages : 36
    Points : 35
    Points
    35
    Par défaut environnements virtuels : quelle bonne pratique pour le fichier requirements.txt?
    Bonjour
    j'ai un en virtuel dans lequel j'ai crée un script python qui fait appels à divers paquets.

    par exemple j'ai import fastapi.

    auparavant j'ai donc fait un pip install fastapi
    et ca m'a installé plusieurs paquets, pas uniquement fastapi. je le sais en faisant un pip freeze

    que dois-je mettre dans le requirements.txt?
    dois-je mettre juste fastapi ou mettre tous les paquest installé s via pip install (en faisant pip freeze > requirements.txt)?

    merci

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 189
    Points : 4 626
    Points
    4 626
    Par défaut
    bonjour

    je suppose que tu as regardé ce que donnait en sortie la commande pip freeze ?

    Ici, nous donnons une version, aux dépendances entre autre. Si on ne met dans ce fichier que le paquet "principal", il est possible d'avoir des dépendances avec d'autres versions plus récentes (si installation demain ou dans un mois). Nous, nous désirons avoir exactement le même environnement !

    note : "dépendances" = paquet installé automatiquement par un autre.
    $moi= ( !== ) ? : ;

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 582
    Points : 2 030
    Points
    2 030
    Par défaut
    Citation Envoyé par sqlbeginner Voir le message
    dois-je mettre juste fastapi ou mettre tous les paquest installé s via pip install (en faisant pip freeze > requirements.txt)?
    Juste fastapi dans le requirements.txt, ça suffira.

    A toi de voir ensuite si tu souhaites conserver le n° de version du fastapi que tu as installé dans le requirements.txt (fastapi==0.95.0) ou si une version supérieure à venir ne posera pas de soucis (fastapi>=0.95.0 ou fastapi tout court).

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2022
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juin 2022
    Messages : 36
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par papajoker Voir le message
    bonjour

    je suppose que tu as regardé ce que donnait en sortie la commande pip freeze ?

    Ici, nous donnons une version, aux dépendances entre autre. Si on ne met dans ce fichier que le paquet "principal", il est possible d'avoir des dépendances avec d'autres versions plus récentes (si installation demain ou dans un mois). Nous, nous désirons avoir exactement le même environnement !

    note : "dépendances" = paquet installé automatiquement par un autre.
    merci mais je ne sais toujours pas quelle est la bonne pratique:
    par contre je comprends que je dois précier la version dans le fichier requirement.txt?
    je comprends que la version je peux l'avoir avec pip freeze


    question bonus:
    si je fais juste pip install fast-api, il m'installe 5 ou 6 paquets
    si je fais pip install fast-api [all], il m'installe une dizaine de paques dont unicorn.
    c'est possible de mettre fast-api[all] dans le requitement.txt? et comment ajouter la version avec [all] en plus?

    merci

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 582
    Points : 2 030
    Points
    2 030
    Par défaut
    Citation Envoyé par sqlbeginner Voir le message
    par contre je comprends que je dois précier la version dans le fichier requirement.txt?
    Ce n'est pas une obligation.

    Citation Envoyé par sqlbeginner Voir le message
    c'est possible de mettre fast-api[all] dans le requitement.txt? et comment ajouter la version avec [all] en plus?
    Je fais ça pour graphQL :

    requirements.txt :

    Et ça fonctionne quand je réinstalle mon venv.

  6. #6
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 885
    Points : 7 233
    Points
    7 233
    Par défaut
    Hello,

    par contre je comprends que je dois précier la version dans le fichier requirement.txt?
    C'est une bonne pratique en effet pour la gestion des dépendances dans son projet Python.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  7. #7
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 189
    Points : 4 626
    Points
    4 626
    Par défaut
    Citation Envoyé par sqlbeginner Voir le message
    merci mais je ne sais toujours pas quelle est la bonne pratique
    Zuut , je pensais que cela serait clair pour toi: entre avoir un environnement identique et un autre presque pareil

    Pour voir comment évoluent les paquets python, nous avons la commande pip list --outdated.
    Sans les versions,
    Si "l'autre" crée un nouvel environnement virtuel aujourd'hui, il va avoir les versions de la colonne "latest" alors que toi dans ton "original", tu vas avoir la colonne "version"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Package      Version Latest Type
    ------------ ------- ------ -----
    astroid      2.15.0  2.15.1 wheel
    platformdirs 3.1.1   3.2.0  wheel
    setuptools   65.5.0  67.6.0 wheel
    tomlkit      0.11.6  0.11.7 wheel
    Et si tu fais des upgrades, tu vas mettre à jour "requirements.txt" et l'autre pourra l'installer à nouveau pour se re-synchroniser à nouveau.

    Note: si on désire une gestion fine des dépendances (versions), on va plus s'orienter vers poetry. Pour tes besoins, je suppose que cela est complétement inutile !

    --------
    Citation Envoyé par sqlbeginner Voir le message
    la bonne pratique
    ps: ne pas mettre les versions n'est pas non plus une mauvaise pratique.
    $moi= ( !== ) ? : ;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/01/2021, 08h07
  2. Quelles bonnes pratiques pour un formulaire dynamique ?
    Par Nothus dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/07/2015, 13h02
  3. [EJB] Quelles bonnes pratiques pour utiliser les transactions "en ligne"?
    Par kisitomomotene dans le forum Java EE
    Réponses: 1
    Dernier message: 12/12/2011, 20h22
  4. Réponses: 33
    Dernier message: 18/04/2009, 12h36
  5. Réponses: 7
    Dernier message: 23/03/2009, 22h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo