Bonjour,
Nouveau sur le site et pas expert en Python, j’ai installé sur un PC Linux bureau Cinnamon, un environnement virtuel “venv”.
Quand j’active mon environnement virtuel (source .../activate) et que je lance un script Python3 depuis un terminal (python3 nomduscript.py) , il fonctionne bien.
Je voudrais créer un lanceur (bureau Cinnamon) pour exécuter ce script (dans l’environnement virtuel), mais je n’arrive pas à créer la commande correcte.
J’ai mis le shebang du script Python à :
La ligne de commande prend la priorité sur le shebang.
Le shebang est utile pour un script exécutable (chmod +x nomduscript.py), en faisant en sorte d’utiliser le bon interpréteur quand tu exécutes /home/cheminEnvirVirtuelduScriptPyth/nomduscript.py directement (sans python3 au début) depuis le shell (ou ./nomduscript.py dans le répertoire courant par exemple).
Le shell s’occupe alors de lire le shebang pour déduire quel est le programme a exécuter (/home/cheminEnvirVirtuel/bin/python3.12 dans ton cas), et ça fonctionne comme tu veux.
En revanche quand tu exécutes python3 /home/cheminEnvirVirtuelduScriptPyth/nomduscript.py ce n’est pas ce mécanisme qui entre en compte : là tu demandes explicitement au shell d’exécuter le programme Python (il résoudra le nom et trouvera quelque chose comme /usr/bin/python3.12) en lui donnant /home/cheminEnvirVirtuelduScriptPyth/nomduscript.py en argument (donc Python se charge de lancer le script).
Merci pour ton aide. J’ai rendu mon script python exécutable dans les permissions et ai fait un lanceur sur mon bureau avec seulement /home/cheminEnvirVirtuelduScriptPyth/nomduscript.py en argument et cela fonctionne.
Coucou, en général j’aime bien m’appuyer sur le bon python sans me poser de question.
J’ai donc tendance à ne pas rendre le script exécutable directement, et sans le shebang donc.
Bonjour Mindiell,
merci pour ta réponse, je viens d’essayer en mettant les 2 chemins dans la commande du lanceur, comme tu le suggères, après avoir remis un shebang standard et rendu le script non exécutable : tout fonctionne également, un vrai bonheur ! Je retiens ta solution, merci
Mais c’est top que tu aies essayé les deux, ça doit pas mal t’aider à clarifier les choses !
Si tu veux aller plus loin tu peux regarder du côté des fichiers .desktop que tu peux mettre dans ~/.local/share/applications/ ça te permet de définir pas mal de choses sur ton programme (nom, description, icone, …). J’ignore cependant entièrement comment Cinnamon les prends en compte… je te laisse faire quelques recherches avec les mots clefs « XDG Desktop Entry and Cinnamon » si tu veux en apprendre plus.
Bonjour mdk,
oui je n’avais pas saisi tout autour du shebang et de la commande pour lancer mon script.
Je suis sous mint 22 et les lanceurs sont pré-réalisés, à la commande près, je n’ai pas assez de connaissance pour me lancer dans plus technique mais je vais regarder suivant tes recommandations. Merci