Posté par Anonyme .
Évalué à 3.
Dernière modification le 26 janvier 2019 à 16:49.
sinon sous linux sur ton poste tu double clic sur ton script .py et … ça ce lance !
il faut juste que le fichier possède l'attribut executable et tu peux tout lancer, sous reserve que le fichier le permet un .jpg ne fera rien. Pour modifier l'attribut du fichier pour qu'il se lance :
en mode console : chmod +x lenomdetonfichier.py
pas besoin de modifier le nom en .exe, d'ailleurs tout les logiciel que tu lance s'appel par le nom sans extension : libreoffice , abiword etc …
Pyinstaller va créer un executable pour la plateforme sur laquelle il est lancé. Pour windows, installe activepython, puis tu lance le binaire. Attention, les modules sont entièrement dans l'exe et donc ton binaire peut avoir une taille importante.
La réponse m'intéresse aussi. Je code dans mon coin, mais désire partager mes créations avec les personnes qui pourraient être intéressées. Cependant leur demander d'installer python, puis ouvrir cmd, lancer pip pour installer les dépendances… c'est inenvisageable. Le magazine Linux Mag explique tout ça? C'est faisable avec des logiciels libres?
% ./test.py
hello world
%pyinstaller test.py
[...]5287 INFO: Appending archive to ELF section in EXE python/build/test/test
[...]
%% du python/build/test/ -h
40K python/build/test/localpycos
**4,5M** python/build/test/
4.5 Mo pour un simple hello world
Et dès que des imports sont fait:
#!/usr/bin/env pythonimportmatha=input("rayon du cercle?")print("perimetre= {}".format(2*math.pi*float(a)))print("superficie={}".format(math.pi*float(a)**2))
Comme déjà proposé, l'outil de référence semble être aujourd'hui PyInstaller.
Il y a sinon cx_Freeze et pynsist qui datent un peu mais qui peuvent sûrement encore être testés.
La majorité des autres projets semble être non maintenus (esky, py2exe, bbfreeze…)
À lire également, la page wiki de l'outil freeze.py sur le site du langage.
Le script est fourni par le paquet python3.7-examples sous Debian: /usr/share/doc/python3.7/examples/freeze/freeze.py
# On referme une porte tout de suite au cas où
Posté par Axone . Évalué à 5.
Un fichier .exe est un exécutable prévu pour tourner sur windows, pas linux.
Tu le sais peut être déjà, mais comme ta question manque beaucoup de précision, je préfère le dire, au cas où.
Sinon, je ne peux pas t'aider sur le reste.
[^] # Re: On referme une porte tout de suite au cas où
Posté par Anonyme . Évalué à 3. Dernière modification le 26 janvier 2019 à 16:49.
sinon sous linux sur ton poste tu double clic sur ton script .py et … ça ce lance !
il faut juste que le fichier possède l'attribut executable et tu peux tout lancer, sous reserve que le fichier le permet un .jpg ne fera rien. Pour modifier l'attribut du fichier pour qu'il se lance :
en mode console : chmod +x lenomdetonfichier.py
pas besoin de modifier le nom en .exe, d'ailleurs tout les logiciel que tu lance s'appel par le nom sans extension : libreoffice , abiword etc …
[^] # Re: On referme une porte tout de suite au cas où
Posté par Eh_Dis_Mwan . Évalué à 2.
Pyinstaller va créer un executable pour la plateforme sur laquelle il est lancé. Pour windows, installe activepython, puis tu lance le binaire. Attention, les modules sont entièrement dans l'exe et donc ton binaire peut avoir une taille importante.
[^] # Re: On referme une porte tout de suite au cas où
Posté par ted (site web personnel) . Évalué à 1.
clic droit sur le fichier > propriétés, et dans l'onglet permission il y a une case à cocher. Sinon, en ligne de commande:
Pour qu'il soit bien exécuté par python, il faut alors que ton fichier commence par:
Ou mieux, pour que ce soit plus portable entre les distributions:
Sous Windows, si python a été installé, les fichiers .py sont automatiquement exécutés par python.
Un LUG en Lorraine : https://enunclic-cappel.fr
# Linux Mag
Posté par Axone . Évalué à 3.
Le Linux Mag qui vient de sortir est consacré justement à la compilation des scripts python
https://boutique.ed-diamond.com/en-kiosque/1375-gnulinux-magazine-223.html
# Pour quoi faire ?
Posté par Kerro . Évalué à 2.
Quel est le problème que tu souhaites résoudre ?
# Ça m'intéresse
Posté par ted (site web personnel) . Évalué à 2.
La réponse m'intéresse aussi. Je code dans mon coin, mais désire partager mes créations avec les personnes qui pourraient être intéressées. Cependant leur demander d'installer python, puis ouvrir cmd, lancer pip pour installer les dépendances… c'est inenvisageable. Le magazine Linux Mag explique tout ça? C'est faisable avec des logiciels libres?
Un LUG en Lorraine : https://enunclic-cappel.fr
[^] # Re: Ça m'intéresse
Posté par Eh_Dis_Mwan . Évalué à 3. Dernière modification le 21 février 2020 à 18:15.
https://www.pyinstaller.org/
Mais attention:
test sous linux :
4.5 Mo pour un simple hello world
Et dès que des imports sont fait:
=> taille de 14Mo
[^] # Re: Ça m'intéresse
Posté par JoeltheLion (site web personnel) . Évalué à 2.
Quelle taille une fois zippé ?
[^] # Re: Ça m'intéresse
Posté par Eh_Dis_Mwan . Évalué à 2.
4Mo pour le deuxième
Mais cela reste énorme
la tailles des modules importés est essentielle
Par ailleurs, j'ai fait le test sous windows, les binaires étaient plus gros
# Re: merci
Posté par Eh_Dis_Mwan . Évalué à 1.
sous macOS, python est installé d'office, j'avais regardé sur une vieille version , c'était la 2.x, j'ai upgadé python
par un
brew install python
Reste plus qu'à te souvenir que python 3 et python 2 se comportent différemment
# Alternatives à PyInstaller ?
Posté par Vroum . Évalué à 1.
Comme déjà proposé, l'outil de référence semble être aujourd'hui PyInstaller.
Il y a sinon cx_Freeze et pynsist qui datent un peu mais qui peuvent sûrement encore être testés.
La majorité des autres projets semble être non maintenus (esky, py2exe, bbfreeze…)
À lire également, la page wiki de l'outil freeze.py sur le site du langage.
Le script est fourni par le paquet python3.7-examples sous Debian:
/usr/share/doc/python3.7/examples/freeze/freeze.py
Ne pas oublier également les Zip archives pour simplifier les déploiements (mais nécessite que Python soit déjà installé):
https://docs.python.org/3/library/zipapp.html#module-zipapp
Une piste également (mais je n'ai pas testé) serait d'utiliser cython sur ton script.
Merci de poster ton retour d'expérience sur le sujet lorsque tu auras fini ! :-)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.