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 :

faire du Python sous ubuntu - comment installer les nouveaux paquets/librairies


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    chomeur
    Inscrit en
    Mai 2022
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Mai 2022
    Messages : 88
    Par défaut faire du Python sous ubuntu - comment installer les nouveaux paquets/librairies
    Bonjour
    je viens d'installer ubuntu 22.04 et je souhaite faire du pyhton, je débute depuis quelques semaines.

    si j'installe la derniere MAJ de pyhton, est-ce que ca ecrase ma version actuelle livrée avec Ubuntu et ou ca en crée une nouvelle?

    Aussi, je lis qu'il faut éviter d'installer des paquets sur note environnement de base et toujours travailler sur des environnements virtuels dans lesquels on installe uniquement les paquets ou librairie qu'on veut pour notre application qu'on va développer en pyhton.
    Vous recommandez cette stratégie?

    ou bien je fais juste des pip install sans me prendre la tete??

    merci

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 671
    Par défaut
    Citation Envoyé par marietar Voir le message
    Vous recommandez cette stratégie?
    Yes.
    A partir du moment où le système utilise aussi Python, pourquoi risquer de le rendre inutilisable alors que vous pouvez mettre à jour un environnement virtuel (sans passer par root).

    Citation Envoyé par marietar Voir le message
    si j'installe la derniere MAJ de pyhton, est-ce que ca ecrase ma version actuelle livrée avec Ubuntu et ou ca en crée une nouvelle?
    Tout dépend du kit d'installation... qui est réalisé par des développeurs de la distribution Linux et qui ont le choix.
    Après vous pouvez compiler Python à partir des sources et l'installer dans votre répertoire utilisateur: pas de collision avec le python système.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 794
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par marietar Voir le message
    si j'installe la derniere MAJ de pyhton, est-ce que ca ecrase ma version actuelle livrée avec Ubuntu et ou ca en crée une nouvelle?
    Si tu utilises le gestionnaire de paquet Ubuntu (apt-get ou aptitude) ça met à jour. Si tu télécharges les sources et que tu compiles, ça en crée une nouvelle (qui peut être "en plus" ou "à la place" de l'acienne, ça dépend de comment tu installes la version compilée).

    Citation Envoyé par marietar Voir le message
    Aussi, je lis qu'il faut éviter d'installer des paquets sur note environnement de base et toujours travailler sur des environnements virtuels dans lesquels on installe uniquement les paquets ou librairie qu'on veut pour notre application qu'on va développer en pyhton.
    Vous recommandez cette stratégie?
    Ca c'est quand on est en mode professionnel, qu'on développe plusieurs projets. Chaque projet possède son propre environnement pour ne pas entrer en collision avec d'autres libs dans d'autres projets.
    Quand on débute, on n'en est pas là.

    Citation Envoyé par marietar Voir le message
    ou bien je fais juste des pip install sans me prendre la tete??
    Tu fais sudo apt-get install sans te prendre la tête. Mais à mon avis, les libs installées par défaut sont déjà bien suffisantes pour débuter.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    ou Pour les librairies à ajouter, effectivement, il en manque qqs unes suivant tes besoins.
    Pour ma part, je travaille sur spyder.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    Citation Envoyé par marietar Voir le message
    Aussi, je lis qu'il faut éviter d'installer des paquets sur note environnement de base et toujours travailler sur des environnements virtuels dans lesquels on installe uniquement les paquets ou librairie qu'on veut pour notre application qu'on va développer en pyhton.
    Vous recommandez cette stratégie?
    De manière générale: oui.
    Créer des venv ça bouffe quand même de la place, pas tant que ça mais c'est à chaque fois un environnement Python complet. Donc ça a un côté "wasteful".
    Je développe souvent sur des VM avec des snapshots, donc je n'hésite pas à installer des libs directement au niveau de l'OS via les packages fournis par la distro. Je ne pense avoir eu de soucis jusqu'à présent.
    De toute façon, quand on distribue l'application on fournit un fichier requirements (ou équivalent en Poetry) et l'utilisateur final peut très bien décider de tout installer dans un venv ou non de son côté.

    Mais c'est vrai que dans certains cas on peut avoir besoin de figer certaines versions de packages, parfois pour contourner des bugs connus, et on peut éventuellement se retrouver avec des conflits ou interdépendances, c'est le problème que Poetry se charge de résoudre. Il y a aussi des utilitaires systèmes qui sont écrits écrits en Python et le fait d'installer certaines libs, ou même mettre à jour Python (par ex. vers 3.10) peut effectivement les casser parfois. J'ai vu ça sous Arch Linux à l'occasion, mais en général ça s'arrange facilement, ou un fix est livré après quelques jours.

    Et si l'application est "containerisée", par exemple en Docker, alors le besoin d'un venv est encore moins impératif.

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 283
    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 283
    Par défaut
    bonjour

    La pile python pour du développement est relativement compliquée, mais en tout cas, on oublie les paquets de notre linux (si de véritables* projets).
    *Si le but de tes projets est de véritablement tourner sur ta machine, je me doute que tu ne vas pas activer un environnement virtuel à chaque fois que tu vas l'utiliser.

    Existes plusieurs outils, par exemple :
    - pyenv pour installer plusieurs versions de python
    - venv, poetry pour manager les bibliothèques
    A toi de faire des recherches

  7. #7
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 303
    Par défaut
    Salut,

    Il ne faut JAMAIS changer la version système de Python dans un environnement Linux, diverses applications ne tourneront plus.

    Maintenant si tu as besoin de tester tes codes sous diverses versions de Python alors tu crées des environnements virtuels pour cela.

    J'ai publié un HOWTO à ce sujet:
    https://www.developpez.net/forums/d1...ls-sous-linux/

  8. #8
    Membre Expert
    Avatar de Pyramidev
    Homme Profil pro
    Tech Lead
    Inscrit en
    Avril 2016
    Messages
    1 510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Tech Lead

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 510
    Par défaut
    Citation Envoyé par marietar Voir le message
    Vous recommandez cette stratégie?
    Oui. C'est vital. Sinon, plus tard, le jour où on essaie de désinstaller des paquets du Python de l'OS, on peut avoir de mauvaises surprises.

    D'ailleurs, si la documentation d'un exécutable (par exemple jello) conseille de l'installer avec pip, c'est généralement une meilleure idée de l'installer avec pipx.

    Sur Linux, un bon moyen de débuter en Python est d'utiliser le trio venv + pip + make. À ce sujet, voici un article qui est pas trop mal quand on débute : Creating a Python Makefile.

    Cet article propose un code en 4 fichiers :

    api.py :
    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import requests
     
    def get_fact(number):
        url = "http://numbersapi.com/{}".format(number)
     
        r = requests.get(url)
        if r.status_code == 200:
            print(r.text)
        else:
            print("An error occurred, code={}".format(r.status_code))
    app.py :
    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import api
     
    api.get_fact(input("Enter a number: "))
    requirements.txt :
    Makefile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    VENV = venv
    PYTHON = $(VENV)/bin/python3
    PIP = $(VENV)/bin/pip
     
    .PHONY: run clean
     
    run: $(VENV)/bin/activate
    	$(PYTHON) app.py
     
    $(VENV)/bin/activate: requirements.txt
    	python3 -m venv $(VENV)
    	$(PIP) install -r requirements.txt
     
    clean:
    	rm -rf __pycache__
    	rm -rf $(VENV)
    Dans le dossier contenant ces 4 fichiers, il suffit de lancer make ou make run pour créer l'environnement virtuel s'il n'existe pas déjà, puis lancer directement app.py depuis l'environnement virtuel. make clean permet de supprimer l'environnement virtuel et le dossier __pycache__.

    C'est juste un début.

    Dans la suite de l'apprentissage, il faudra aussi ajouter le reformatage du code (ex : black et isort), les linters (ex : pylint) et les tests automatisés.

    Il faudra aussi pourvoir choisir la version de Python en fonction du projet et utiliser des outils plus avancés que pip. Mais, en ce moment, l'écosystème du packaging en Python ressemble encore à une jungle, donc il n'y a pas vraiment de solution standard et les solutions les plus populaires changent avec le temps. Personnellement, j'aime bien utiliser une combinaison de pyenv et pip-tools, mais il existe aussi Poetry, conda et beaucoup d'autres. Mais, dans tous les cas, en Python, il est utile d'être à l'aise avec venv et pip avant de passer à plus compliqué.

  9. #9
    Membre confirmé
    Homme Profil pro
    chomeur
    Inscrit en
    Mai 2022
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Mai 2022
    Messages : 88
    Par défaut
    merci pour les liens

  10. #10
    Membre confirmé
    Homme Profil pro
    chomeur
    Inscrit en
    Mai 2022
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Mai 2022
    Messages : 88
    Par défaut
    re
    je ne comprends pas trop le makefile
    dans le lien que ut me donnes : https://earthly.dev/blog/python-makefile/

    ca commence par dire de créer un makefile avec ces lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    run:
    	python3 app.py
    puis quand je fais make run dans la console, j'ai le code qui s'execute

    pius le site me dit d'ajouter une nouvelle ligne pour installer le paquet request
    puis d'ajouter une ligne pour nettoyer le dossier en supprimant le dossier __pycahce__

    dans ubuntu 22.04, j'ai la paquet request qui est déjà installé, je vais donc juste supprimer le dossier __pycache__

    mais quand je fais make

    j'ai donc ce makefile:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    clean:
        rm -rf __pycache__
     
    run:
    	python3 app.py

    mais quand je fais make run dans la console, j'ai cette erreur:
    makefile:2: *** séparateur manquant. Arrêt.

    que dois-je faire?

  11. #11
    Membre Expert
    Avatar de Pyramidev
    Homme Profil pro
    Tech Lead
    Inscrit en
    Avril 2016
    Messages
    1 510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Tech Lead

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 510
    Par défaut
    Citation Envoyé par marietar Voir le message
    mais quand je fais make run dans la console, j'ai cette erreur:
    makefile:2: *** séparateur manquant. Arrêt.

    que dois-je faire?
    Il faut remplacer les 4 espaces par une tabulation. C'est une bizarrerie de make.

    Citation Envoyé par L'article
    Note that there are tabs before the recipe lists. Anything other than tabs will result in an error.
    Il y a un problème de mise en page du code de l'article. J'ai dû aussi remplacer à la main ces espaces par des tabulations.

  12. #12
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour

    Je ne savais pas qu'il pouvait exister autant de pratiques différentes sur le sujet! Alors, j'ajoute la mienne :

    Sous Linux (mint pour moi):

    - j'utilise toujours Synaptic pour ajouter les paquets Python, tant que ceux qui m'intéressent existent. Sinon pip.

    - je suis plutôt favorable aux environnements virtuels (venv) pour éviter de "polluer" le Python installé par défaut, celui-ci étant utilisé par l'OS.

    - je ne conseille pas d'ajouter un autre Python à celui par défaut, sauf si le Linux qu'on a en est encore à Python v2. A part peut-être avec pyenv (ex: https://blog.stephane-robert.info/po...-pyenv-pipenv/)?

    - je ne vois pas d'utilité à compiler Python à partir des sources, sauf si c'est pour apprendre. Mais il est vrai que les Linux ont souvent un petit retard de version du Python installé. Alors, si on veut vraiment la dernière version... Mais dans ce cas, les modules externes dont on a besoin ont souvent un retard de version aussi, et il faudra faire très attention aux conditions d'installation en plus du Python installé! Ce n'est vraiment pas une solution pour débutant!

  13. #13
    Membre confirmé
    Homme Profil pro
    chomeur
    Inscrit en
    Mai 2022
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Mai 2022
    Messages : 88
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Bonjour

    Je ne savais pas qu'il pouvait exister autant de pratiques différentes sur le sujet! Alors, j'ajoute la mienne :


    - je ne vois pas d'utilité à compiler Python à partir des sources, sauf si c'est pour apprendre. Mais il est vrai que les Linux ont souvent un petit retard de version du Python installé. Alors, si on veut vraiment la dernière version... Mais dans ce cas, les modules externes dont on a besoin ont souvent un retard de version aussi, et il faudra faire très attention aux conditions d'installation en plus du Python installé! Ce n'est vraiment pas une solution pour débutant!
    ca veut dire quoi compiler Python à partir des sources??
    ca veut dire utilise le makefile?

    je viens de decouvrir le makefile et je trouve ca très pratique

  14. #14
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par marietar Voir le message
    ca veut dire quoi compiler Python à partir des sources??
    ca veut dire utilise le makefile?
    Les sources de Python sont écrits en C. Exemple pour la version 3.10.9:
    https://www.python.org/ftp/python/3....hon-3.10.9.tgz

    Compiler Python à partir des sources, c'est donc faire la compilation complète du C en code natif pour obtenir l'interpréteur Python.

  15. #15
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 794
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par marietar Voir le message
    ca veut dire quoi compiler Python à partir des sources??
    Les programmes Unix/Linux sont des programmes écrits généralement en C*. Et étant dans le domaine public, ils sont donc disponibles en tant que "source" (tu peux télécharger/voir/modifier le code d'origine). Et ensuite, pour les rendre exécutables, il faut les compiler.

    (*) enfin ça pourrait changer dans le futur car il est plus ou moins question de remplacer le C par rust

    Citation Envoyé par marietar Voir le message
    ca veut dire utilise le makefile?
    Ce n'est pas une obligation mais comme tu le soulignes, c'est un outil assez pratique donc généralement induit.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  16. #16
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 671
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    - je ne vois pas d'utilité à compiler Python à partir des sources, sauf si c'est pour apprendre. Mais il est vrai que les Linux ont souvent un petit retard de version du Python installé. Alors, si on veut vraiment la dernière version..
    Il y a des boîtes qui vont vers Linux pour y installer des applications et ne toucher à rien tant que ce n'est pas nécessaire. Sauf que parfois il faut y ajouter de nouvelles applications en évitant de mettre à jour l'environnement système.

    Et c'est là qu'on a "conflit" entre des machines de développements qui tournent des versions récentes et la cible - sous versions anciennes... Est-ce qu'on peut utiliser le python existant ou sera-t-il jouable d'ajouter une version récente à côté? Que faire côté bibliothèques?
    A ce moment là, on repart des sources et on teste (et ça ne prend pas des semaines).

    note: J'entends que pour certain l'idéal est de mettre à jour régulièrement... mais dans la vraie vie, c'est pas toujours un bon choix.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  17. #17
    Membre confirmé
    Homme Profil pro
    chomeur
    Inscrit en
    Mai 2022
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Mai 2022
    Messages : 88
    Par défaut
    j'ai un doute sur l'installation de paquets dans un env virtuel.

    je crée mon env virtuel avec cette commande: python -m venv venv
    ensuite je dois l'activer puis installer les paquets?
    ou je peux installer les paquets tout de suite après avoir créé l'env virtuel?

  18. #18
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 794
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par marietar Voir le message
    ou je peux installer les paquets tout de suite après avoir créé l'env virtuel?
    Non. Puisque tu as créé un environnement (tout comme tu aurais pu en créer 50), il te faut l'activer (ne serait-ce que pour pouvoir dire dans lequel des 50 tu veux te positionner)
    cd venv; source bin/activate et là tu peux installer les paquets qui seront donc installés dans le Python du dossier "venv" (que tu aurais pu quand-même nommer autrement)

    VinsS avait déjà tout écrit à ce propos et t'avait donné les liens.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  19. #19
    Membre Expert
    Avatar de Pyramidev
    Homme Profil pro
    Tech Lead
    Inscrit en
    Avril 2016
    Messages
    1 510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Tech Lead

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 510
    Par défaut
    Citation Envoyé par marietar Voir le message
    je crée mon env virtuel avec cette commande: python -m venv venv
    ensuite je dois l'activer puis installer les paquets?
    ou je peux installer les paquets tout de suite après avoir créé l'env virtuel?
    venv/bin/activate est un script Bash qui, entre autres, ajoute le chemin venv/bin en tête de la variable d'environnement PATH et crée une fonction deactivate qui permet d'annuler les changements.

    Dans le terminal, si tu lances source venv/bin/activate alors, quand tu lanceras une commande python (respectivement pip), l'OS comprendra qu'il s'agira de venv/bin/python (respectivement venv/bin/pip).

    Attention cependant au cas du Makefile. Par défaut, make exécute chaque ligne dans un sous-shell séparé. Du coup, si tu écris, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    run: venv/bin/activate
    	source venv/bin/activate
    	python app.py
    alors make run va exécuter les commandes source venv/bin/activate et python app.py dans deux sous-shells différents et le python exécuté ne sera pas venv/bin/python.

    Du coup, dans un Makefile, il vaut mieux directement écrire quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    run: venv/bin/activate
    	venv/bin/python app.py
    Anecdote : À une époque, j'appelais directement venv/bin/python depuis des scripts Python. Avec le Python de l'OS, j'exécutais des commandes avec le Python de l'environnement virtuel avec des appels du genre subprocess.check_call(("venv/bin/python", "-m", "pylint", "my_project")). Ensuite, j'ai trouvé que les Makefile étaient plus pratiques.

    venv/bin/activate, c'est un utilitaire pour taper plus facilement des commandes depuis le terminal.

    Citation Envoyé par Sve@r Voir le message
    dossier "venv" (que tu aurais pu quand-même nommer autrement)
    En fait, "venv" est un bon nom de dossier virtuel quand on le crée dans le dossier du projet. Un avantage que j'ai découvert est que, avec PyCharm, quand on ouvre un dossier qui contient déjà un sous-dossier "venv", PyCharm comprend tout de suite que c'est l'environnement virtuel et se configure tout seul, sans action manuelle, en choisissant venv/bin/python comme étant l'interpréteur Python du projet. Et quand on ouvre un terminal depuis PyCharm, il active directement l'environnement virtuel. C'est plutôt pratique.

  20. #20
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 303
    Par défaut
    Citation Envoyé par marietar Voir le message
    j'ai un doute sur l'installation de paquets dans un env virtuel.

    je crée mon env virtuel avec cette commande: python -m venv venv
    ensuite je dois l'activer puis installer les paquets?
    ou je peux installer les paquets tout de suite après avoir créé l'env virtuel?
    Oui, il faut toujours l'activer pour l'utiliser et donc pour y installer des nouveaux modules.

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/09/2017, 14h15
  2. Comment installer les packs de langues sous Windows 7 ?
    Par shawn12 dans le forum Windows 7
    Réponses: 1
    Dernier message: 24/08/2009, 21h18
  3. Comment installer les packages sous Fedora sur une machine non connecter ?
    Par gemo1485 dans le forum RedHat / CentOS / Fedora
    Réponses: 4
    Dernier message: 20/06/2009, 08h45
  4. Réponses: 3
    Dernier message: 07/02/2007, 17h39
  5. Réponses: 4
    Dernier message: 13/10/2006, 07h33

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