Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/06/2025, à 17:50

f6aap

Compiler un script Python pour avoir un executable ubuntu

Bonjour,

Je souhaite compiler un script Python pour avoir un exécutable sous Ubuntu.

Merci pour vos réponses,

Cordialemnt

Hors ligne

#2 Le 03/06/2025, à 18:44

kamaris

Re : Compiler un script Python pour avoir un executable ubuntu

Un script est par définition un programme qui ne se compile pas mais s'interprète, avec un interpréteur : https://fr.wikipedia.org/wiki/Langage_de_script
Ici python :

python nom-du-script

Hors ligne

#4 Le 04/06/2025, à 11:07

f6aap

Re : Compiler un script Python pour avoir un executable ubuntu

Bonjour

Merci pour votre réponse.

la commande d'installation de Pyinstaller bug

daniel@hp:~$ pip install --upgrade pyinstaller
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.12/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

Merci de m'aider !

Cordialement

Hors ligne

#5 Le 04/06/2025, à 14:27

MPython Alaplancha

Re : Compiler un script Python pour avoir un executable ubuntu

Bonjour.
Petite mise au point sur les termes employés. Pyinstaller ne compile pas comme le ferait un langage compilé(comme le c).  Il empaquète plutôt un code python avec son interpréteur et ses dépendances. Ton exécutable ne fonctionnera que sur la plateforme sur laquelle tu le crées .

Pour ta question sur son installation, tu dois utiliser un environnement virtuel comme venv.
https://www.commentcoder.com/python-venv/ (1er lien trouvé . utilise python3 et non python comme décrit sur ce site)

Quel est ton but au juste?


# Debian12 Mate

Hors ligne

#6 Le 04/06/2025, à 17:46

f6aap

Re : Compiler un script Python pour avoir un executable ubuntu

Merci MPython Alaplancha

Mon but est de diffuser un exécutable sur plusieurs postes et ne pas permettre la modification.

Je dispose de ce tutoriel (voir ci-dessous ) mais qui ne fonctionne plus

Comment compiler un script python pour Linux :
Étape1:

Pour Linux, nous pouvons également utiliser la bibliothèque pyinstaller, mais pour compiler le script python pour Linux, nous devons effectuer ce processus sur un système Linux, sinon il créera automatiquement un fichier .exe

Pour installer pyinstaller, utilisez la commande suivante dans le terminal.

pip3 install pyinstaller

Bash
Étape2:

Comme avant de créer un dossier et d’y enregistrer le script python. Par exemple, nous avons créé un nom de dossier exe_app et y avons enregistré mon script python nommé app.py.
Étape3:

Ouvrez un terminal dans le même dossier où notre script python est enregistré, tapez la commande suivante et appuyez sur Entrée.

pyinstaller --onefile app.py

Bash

Sortir:
Étape4:

After running the command you can see that more files and folders are created in the root folder. There you can see folder name dist in that you can find the file name app.

vous pouvez lancer le fichier d’application en utilisant le commun suivant dans le terminal dans le même répertoire.

Merci de votre aide,

Cordialement

Hors ligne

#7 Le 05/06/2025, à 07:14

MPython Alaplancha

Re : Compiler un script Python pour avoir un executable ubuntu

Comme je l'ai dis précédemment, il te faut utiliser pip install dans un environnement virtuel (comme venv). Ce n'était pas le cas il y a quelques années, mais son usage est rendu obligatoire maintenant par nos systèmes .


# Debian12 Mate

Hors ligne

#8 Hier à 17:54

f6aap

Re : Compiler un script Python pour avoir un executable ubuntu

Bonjour,

J'ai suivi le tutoriel du lien fourni par MPython Alaplancha

Voici les commandes passées avec les résultats :
python -m venv Virtuel

Résultat : La commande "python n'a pas été trouvée, vous voulez dire python3

J'ai passé la commande suivante : python3 -m venv Virtuel résultat OK

Ensuite j'ai passé la commande : source Virtuel/activate :

Résultat : bash : /home/daniel/Virtuel/activate : aucun fichier ou dossier de ce type

Ou est le bug ?

Merci pour de l'aide

Cordialement

Hors ligne

#9 Hier à 18:12

krodelabestiole

Re : Compiler un script Python pour avoir un executable ubuntu

le mieux est d'empaqueter ton script / application python et ses dépendances dans un format pensé pour, comme flatpak ou appimage.

ils sont conçus expressément pour fonctionner sur n'importe quel linux sans se soucier des dépendances.

Hors ligne

#10 Hier à 19:02

Tawal

Re : Compiler un script Python pour avoir un executable ubuntu

Hello,

Compiler un script !!!!

Si le souhait est de distribuer sur plusieurs poste un même script sans possibilité de le modifier,
alors il suffit de le distribuer comme appartenant à un utilisateur différent de ceux sur les postes et de retreindre les droits du script à Lecture/Exécution.

Ensuite, un script peut être rendu exécutable, et placé dans un répertoire du PATH, il devient une commande directement accessible par son nom de fichier.

Bref, je ne vois pas où c'est compliqué.

Hors ligne

#11 Aujourd'hui à 01:35

krodelabestiole

Re : Compiler un script Python pour avoir un executable ubuntu

c'est compliqué à partir du moment où ton script fait appel à des librairies ou autres dépendances, ou même simplement une version de python particulière.

le nombre de problèmes liés à des dépendances insatisfaites ou des scripts non mis à jour pour les dernières versions de leur interpréteur est incommensurable.

prends phatch (photo batch) par exemple, qui était pourtant largement utilisé et apprécié...
si il avait existé à l'époque une version flatpak ou appimage de cette application python, elle serait encore fonctionnelle sur nos systèmes aujourd'hui (même si abandonnée depuis 10 ans).

et sans avoir besoin de prendre en exemple un projet abandonné depuis si longtemps, c'est de toute façon extrêmement contraignant et dommageable de demander à de nombreux utilisateurs, non informaticiens, d'installer un logiciel dans telle ou telle version sur des systèmes disparates et de devoir changer les permissions d'un script pour pouvoir l'utiliser !


sauf erreur je ne pense pas qu'il s'agisse d'une volonté d'empêcher l'édition du script (d'ailleurs quelles qu'en soit les permissions rien n'empêche de le copier pour le modifier), mais plutôt simplement de s'assurer que le script fonctionne partout, tout le temps, sans étape d'installation complexe. c'est en tout cas une motivation qui me parait tout à fait cohérente et ordinaire !


la doc officielle pour empaqueter une application python en flatpak est là : https://docs.flatpak.org/en/latest/python.html

Hors ligne

#12 Aujourd'hui à 05:59

MPython Alaplancha

Re : Compiler un script Python pour avoir un executable ubuntu

Bonjour.

f6aap a écrit :

python -m venv Virtuel
Résultat : La commande "python n'a pas été trouvée, vous voulez dire python3
J'ai passé la commande suivante : python3 -m venv Virtuel résultat OK

oui je te l'avais précisé

f6aap a écrit :

Ou est le bug ?
Merci pour de l'aide

fab@fabien:/tmp$ mkdir mon_venv
fab@fabien:/tmp$ python3 -m venv mon_venv
fab@fabien:/tmp$ source /tmp/mon_venv/bin/activate
(mon_venv) fab@fabien:/tmp$ #pip install pyinstaller
(mon_venv) fab@fabien:/tmp$ deactivate
fab@fabien:/tmp$ 

# Debian12 Mate

Hors ligne

#13 Aujourd'hui à 11:00

Tawal

Re : Compiler un script Python pour avoir un executable ubuntu

f6aap a écrit :

python -m venv Virtuel

Résultat : La commande "python n'a pas été trouvée, vous voulez dire python3

En installant le paquet python-is-python3, tu peux remplacer python3 par python dans les commandes.
Ce paquet est surtout utile pour les scripts ayant toujours un shebang #!/bin/python, ça évite à devoir les éditer.

Hors ligne