Vous n'êtes pas identifié(e).
Pages : 1
==Description==
Python compile automatiquement du code source Python lorsque vous importez un module, de sorte que le meilleur moyen de créer un fichier .pyc est l'importation.
==Méthode 1==
Si vous avez un module de code.py, faites juste:
python -c 'import code'
Ensuite rendez le exécutable.
chmod +x code.pyc
Et testez l'application.
./code.pyc
python -m compileall
:!: Attention le code ne sera pas vraiment compilé mais packagé, et il ne sera pas portable sous windows.
Exemple pour test
==Méthode 2==
cx_Freeze est une application qui vous permet de figer le code Python dans des fichiers exécutables, de façon similaire à la façon dont travaille py2exe et py2app.
==Installation==
Pour ubuntu
sudo apt-get install cx-freeze
Edit WarLocG:
Dépots:
Non vérifié sous Ubuntu si le package est présent, mais sous Debian le package n'est pas dans un dépot. Pas disponible via apt-get donc. Il faudra le télécharger son archive sur le site officiel: https://sourceforge.net/projects/cx-freeze/files/ , extraire l'archive et lancer les commandes manuellement.
tar xvf cx_Freeze-<tabulation>
cd cx_Freeze-<tabulation>
Et lancer les commandes ci-dessous.
Patch de l'installeur:
Sous Ubuntu et Debian, le fichier setup.py ne compile pas correctement, c'est un erreur connue (https://bitbucket.org/anthony_tuininga/ … buntu-1304).
Afin de compiler sous Ubuntu et Debian:
Sous python 2.7:
remplacer la ligne "if not vars.get("Py_ENABLE_SHARED", 0):" par "if True:" (commentez toujours l'ancienne ligne par sécurité).
Les package python-dev et libssl-dev doivent etre présent. (Pour ma part j'avais installé python-all-dev)
Compiler et installer:
[sudo]python setup.py build
[sudo]python setup.py install
Sous python 3.3 et 3.4
Idem, sauf qu'il faut que le package python3-dev (ou python3-all-dev) soit installé.
Compiler et installer:
[sudo]python3 setup.py build
[sudo]python3 setup.py install
Autre système d'exploitation ou distribution.
Téléchargement:
http://sourceforge.net/projects/cx-freeze/
==Usage==
Pour compiler un code simple
Exemple de code:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print 'Hello Wolrld'
Rendez votre script exécutable et testez le
chmod +x code.py
./code.py
Ensuite on passe à la compilation proprement dite.
cxfreeze code.py
icef0x@Debian ~ $ cxfreeze code.py
creating directory /home/icef0x/dist
copying /usr/lib/pymodules/python2.6/cx_Freeze/bases/Console -> /home/icef0x/dist/code
copying /usr/lib/libpython2.6.so.1.0 -> /home/icef0x/dist/libpython2.6.so.1.0
writing zip file /home/icef0x/dist/code
Name File
---- ----
m StringIO /usr/lib/python2.6/StringIO.py
m UserDict /usr/lib/python2.6/UserDict.py
m __builtin__
m __future__ /usr/lib/python2.6/__future__.py
m __main__ compil.py
m _abcoll /usr/lib/python2.6/_abcoll.py
m _bisect
m _codecs
m _collections
m _functools
m _heapq /usr/lib/python2.6/lib-dynload/_heapq.so
m _locale
m _random
m _sre
m _strptime /usr/lib/python2.6/_strptime.py
m _struct
m _threading_local /usr/lib/python2.6/_threading_local.py
m _warnings
m abc /usr/lib/python2.6/abc.py
m array
m bdb /usr/lib/python2.6/bdb.py
m binascii
m bisect /usr/lib/python2.6/bisect.py
m cPickle
m cStringIO
m calendar /usr/lib/python2.6/calendar.py
m cmd /usr/lib/python2.6/cmd.py
m codecs /usr/lib/python2.6/codecs.py
m collections /usr/lib/python2.6/collections.py
m copy /usr/lib/python2.6/copy.py
m copy_reg /usr/lib/python2.6/copy_reg.py
m cx_Freeze__init__ /usr/lib/pymodules/python2.6/cx_Freeze/initscripts/Console.py
m datetime /usr/lib/python2.6/lib-dynload/datetime.so
m difflib /usr/lib/python2.6/difflib.py
m dis /usr/lib/python2.6/dis.py
m doctest /usr/lib/python2.6/doctest.py
m dummy_thread /usr/lib/python2.6/dummy_thread.py
P encodings /usr/lib/python2.6/encodings/__init__.py
m encodings.aliases /usr/lib/python2.6/encodings/aliases.py
m errno
m fcntl
m functools /usr/lib/python2.6/functools.py
m gc
m genericpath /usr/lib/python2.6/genericpath.py
m getopt /usr/lib/python2.6/getopt.py
m gettext /usr/lib/python2.6/gettext.py
m heapq /usr/lib/python2.6/heapq.py
m imp
m inspect /usr/lib/python2.6/inspect.py
m itertools
m keyword /usr/lib/python2.6/keyword.py
m linecache /usr/lib/python2.6/linecache.py
m locale /usr/lib/python2.6/locale.py
m marshal
m math
m opcode /usr/lib/python2.6/opcode.py
m operator
m optparse /usr/lib/python2.6/optparse.py
m os /usr/lib/python2.6/os.py
m pdb /usr/lib/python2.6/pdb.py
m pickle /usr/lib/python2.6/pickle.py
m posix
m posixpath /usr/lib/python2.6/posixpath.py
m pprint /usr/lib/python2.6/pprint.py
m pwd
m random /usr/lib/python2.6/random.py
m re /usr/lib/python2.6/re.py
m readline /usr/lib/python2.6/lib-dynload/readline.so
m repr /usr/lib/python2.6/repr.py
m select
m shlex /usr/lib/python2.6/shlex.py
m signal
m sre_compile /usr/lib/python2.6/sre_code.py
m sre_constants /usr/lib/python2.6/sre_constants.py
m sre_parse /usr/lib/python2.6/sre_parse.py
m stat /usr/lib/python2.6/stat.py
m string /usr/lib/python2.6/string.py
m strop
m struct /usr/lib/python2.6/struct.py
m subprocess /usr/lib/python2.6/subprocess.py
m sys
m tempfile /usr/lib/python2.6/tempfile.py
m textwrap /usr/lib/python2.6/textwrap.py
m thread
m threading /usr/lib/python2.6/threading.py
m time
m token /usr/lib/python2.6/token.py
m tokenize /usr/lib/python2.6/tokenize.py
m traceback /usr/lib/python2.6/traceback.py
m types /usr/lib/python2.6/types.py
m unittest /usr/lib/python2.6/unittest.py
m warnings /usr/lib/python2.6/warnings.py
m zipimport
m zlib
Missing modules:
? _subprocess imported from subprocess
copying /usr/lib/python2.6/lib-dynload/_heapq.so -> /home/icef0x/dist/_heapq.so
copying /usr/lib/python2.6/lib-dynload/datetime.so -> /home/icef0x/dist/datetime.so
copying /usr/lib/python2.6/lib-dynload/readline.so -> /home/icef0x/dist/readline.so
L'application à créer un répertoire "dist" ou se trouve l'exécutable.
cd dist/
Testez le binaire
./code
Réponse de la commande "file"
icef0x@Debian dist $ file code
code: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
N'ayant pas encore testé toute les méthodes, je renvois vers les liens explicatifs.
http://python.jpvweb.com/mesrecettespyt … =cx_freeze
http://www.developpez.net/forums/d1025735/autres-langages/python-zope/deplo…
Tuto pdf:
http://up.sur-la-toile.com/iYRa
documentation:
http://effbot.org/zone/python-compile.htm (anglais)
http://cx-freeze.sourceforge.net/cx_Freeze.html
Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D
Hors ligne
Merci pour le tuto , plutôt utile
Mess With The Bests
Die Like The Rest
Hors ligne
Merci MlleParker, c'est un vieux tutoriel de l'ancien forum que j'ai remis mais qui doit être vérifié, en particulier le premier point.
Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D
Hors ligne
Bonjour à tous, bonjour Gourou.
J'aimerais bien tenter de compiler, d'obtenir un fichier .pyc, ou/et .exe depuis ma Linux Mint Sarah.
J'ai survolé quelques liens ici et la, j'ai vu qu'il est question de cx-freeze mais, je ne l'ai pas installé.
J'aimerais bien revoir la méthode, au plus simple, pas à pas.
A bientôt.
Hors ligne
J'aimerais bien revoir la méthode, au plus simple, pas à pas.
sudo apt-get install cx-freeze
cx-freeze monscript.py
Le paquet existe pour python 3 également https://launchpad.net/~phobie/+archive/ … hive-extra
Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D
Hors ligne
Merci pour ton retour Gourou.
Effectivement, ça semble très simple.
Je crois que les paquets ne sont pas disponibles sur Linux Mint Sarah.
Une seule ligne dans mon source liste :
#deb cdrom:[Linux Mint 18 _Sarah_ - Release amd64 20160728]/ xenial contrib main non-free
Résultat :
MintTesting ~ $ sudo apt-get install cx-freeze
[sudo] Mot de passe de zencool :
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
E: Impossible de trouver le paquet cx-freeze
Idem avec Debian Jessie 8.5 en non-free je ne trouve pas le paquet.
deb http://httpredir.debian.org/debian jessie main contrib non-free
deb-src http://httpredir.debian.org/debian jessie main contrib non-free
deb http://httpredir.debian.org/debian jessie-updates main contrib non-free
deb-src http://httpredir.debian.org/debian jessie-updates main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free
deb http://http.debian.net/debian jessie-backports main contrib non-free
E: Impossible de trouver le paquet cx-freeze
Je confirme donc que sur Linux Mint Sarah et sur Debian Jessie Stable non-free le paquet cx-freeze n'est pas présent.
C'est donc l'installation de cx-freeze que j'aimerais revoir en cette fin d'année.
Dernière modification par Zer00CooL (19-12-2016 03:52:58)
Hors ligne
Comme je vois que tu tourne sur mint sarah (ubuntu xenial) pour moi ils sont dedans si je me réfère à ce lien https://launchpad.net/ubuntu/xenial/+package/cx-freeze.
Donc juste télécharger le deb http://launchpadlibrarian.net/129803531 … _amd64.deb
Ensuite
sudo dpkg -i cx-freeze_4.3.1-0ubuntu1_amd64.deb
en cas de souci de dépendances
sudo apt-get -f install
et
cx-freeze monscript.py
Pour debian jessie
sudo pip install cx_Freeze
Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D
Hors ligne
Avec Linux Mint
L'installation semble bien fonctionner.
wget http://launchpadlibrarian.net/129803531 … _amd64.deb
--2017-01-02 15:44:19-- http://launchpadlibrarian.net/129803531 … _amd64.deb
Résolution de launchpadlibrarian.net (launchpadlibrarian.net)… 91.189.89.229, 91.189.89.228
Connexion à launchpadlibrarian.net (launchpadlibrarian.net)|91.189.89.229|:80… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 197706 (193K) [application/x-debian-package]
Enregistre : «cx-freeze_4.3.1-0ubuntu1_amd64.deb»
cx-freeze_4.3.1-0ub 100%[===================>] 193,07K 195KB/s in 1,0s
2017-01-02 15:44:20 (195 KB/s) - «cx-freeze_4.3.1-0ubuntu1_amd64.deb» enregistré [197706/197706]
sudo dpkg -i cx-freeze_4.3.1-0ubuntu1_amd64.deb
[sudo] Mot de passe de user :
Sélection du paquet cx-freeze précédemment désélectionné.
(Lecture de la base de données... 380183 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de cx-freeze_4.3.1-0ubuntu1_amd64.deb ...
Dépaquetage de cx-freeze (4.3.1-0ubuntu1) ...
dpkg: des problèmes de dépendances empêchent la configuration de cx-freeze :
cx-freeze dépend de python-support (>= 0.90.0) ; cependant :
Le paquet python-support n'est pas installé.
cx-freeze dépend de python-tk ; cependant :
Le paquet python-tk n'est pas installé.
dpkg: erreur de traitement du paquet cx-freeze (--install) :
problèmes de dépendances - laissé non configuré
Traitement des actions différées (« triggers ») pour man-db (2.7.5-1) ...
Des erreurs ont été rencontrées pendant l'exécution :
cx-freeze
sudo apt-get -f install
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Correction des dépendances... Fait
The following additional packages will be installed:
blt python-tk tk8.6-blt2.5
Paquets suggérés :
blt-demo tix python-tk-dbg
Les paquets suivants seront ENLEVÉS :
cx-freeze
Les NOUVEAUX paquets suivants seront installés :
blt python-tk tk8.6-blt2.5
0 mis à jour, 3 nouvellement installés, 1 à enlever et 35 non mis à jour.
1 partiellement installés ou enlevés.
Il est nécessaire de prendre 605 ko dans les archives.
Après cette opération, 1 115 ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n]
o + entré
Réception de:1 http://fr.archive.ubuntu.com/ubuntu xenial/main amd64 tk8.6-blt2.5 amd64 2.5.3+dfsg-3 [574 kB]
Réception de:2 http://fr.archive.ubuntu.com/ubuntu xenial/main amd64 blt amd64 2.5.3+dfsg-3 [4 852 B]
Réception de:3 http://fr.archive.ubuntu.com/ubuntu xenial/main amd64 python-tk amd64 2.7.11-2 [26,2 kB]
605 ko réceptionnés en 2s (237 ko/s)
(Lecture de la base de données... 380258 fichiers et répertoires déjà installés.)
Suppression de cx-freeze (4.3.1-0ubuntu1) ...
Traitement des actions différées (« triggers ») pour man-db (2.7.5-1) ...
Sélection du paquet tk8.6-blt2.5 précédemment désélectionné.
(Lecture de la base de données... 380183 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../tk8.6-blt2.5_2.5.3+dfsg-3_amd64.deb ...
Dépaquetage de tk8.6-blt2.5 (2.5.3+dfsg-3) ...
Sélection du paquet blt précédemment désélectionné.
Préparation du dépaquetage de .../blt_2.5.3+dfsg-3_amd64.deb ...
Dépaquetage de blt (2.5.3+dfsg-3) ...
Sélection du paquet python-tk précédemment désélectionné.
Préparation du dépaquetage de .../python-tk_2.7.11-2_amd64.deb ...
Dépaquetage de python-tk (2.7.11-2) ...
Traitement des actions différées (« triggers ») pour libc-bin (2.23-0ubuntu5) ...
Paramétrage de tk8.6-blt2.5 (2.5.3+dfsg-3) ...
Paramétrage de blt (2.5.3+dfsg-3) ...
Paramétrage de python-tk (2.7.11-2) ...
Traitement des actions différées (« triggers ») pour libc-bin (2.23-0ubuntu5) ...
Je teste un script
Créer un fichier mon_script.py.
touch mon_script.py
Ecrire ´´print ‘Hello World’;´´ dans mon_script.py.
echo “print ‘Hello World’;” > mon_script.py
echo “print ‘Hello World’;” > mon_script.py“print ‘Hello World’” : commande introuvable
Executer le fichier mon_script.py.
python mon_script.py
Si je met manuellement le code print ‘Hello World’; dans le fichier .py
python mon_script.py File "mon_script.py", line 1SyntaxError: Non-ASCII character '\xe2' in file mon_script.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
Dernière modification par Zer00CooL (02-01-2017 17:35:22)
Hors ligne
Avec Linux Mint
L'installation semble bien fonctionner.
Si je met manuellement le code print ‘Hello World’; dans le fichier .py
python mon_script.py File "mon_script.py", line 1SyntaxError: Non-ASCII character '\xe2' in file mon_script.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for detailsPuis, tester encore avec Debian Jessie.
Pas d'accent dans le code sans le déclarer
#!/usr/bin/python
# -*- coding: utf-8 -*-
Ou
# -*- coding: iso-8859-15 -*-
Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D
Hors ligne
On m'explique le shebang au moment de ta réponse et j'ai modifié mon script python qui fonctionne bien maintenant :
#!/usr/bin/env python
print "Hello World";
Affiche Hello World avec python hello_world.py
Je rajouter l'encodage utf-8 comme tu le montres plus haut.
Je tente donc cx-freeze monscript.py
cx-freeze hello_world.py
cx-freeze : commande introuvable
Pourtant, j'ai installé les paquets, comme tu peux le voir plus haut.
Bon, je regarde la doc mais, pour le moment, je ne suis pas plus aidé avec : http://cx-freeze.readthedocs.io/en/latest/
... Puis, tester encore avec Debian Jessie.
Dernière modification par Zer00CooL (02-01-2017 17:47:12)
Hors ligne
sudo apt-get update
sudo apt-get install python-tk && sudo dpkg -i cx-freeze_4.3.1-0ubuntu1_amd64.deb
Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D
Hors ligne
Erreurs de dépendances
sudo apt-get install python-tk && sudo dpkg -i cx-freeze_4.3.1-0ubuntu1_amd64.deb
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
python-tk is already the newest version (2.7.11-2).
python-tk passé en « installé manuellement ».
0 mis à jour, 0 nouvellement installés, 0 à enlever et 35 non mis à jour.
Sélection du paquet cx-freeze précédemment désélectionné.
(Lecture de la base de données... 380216 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de cx-freeze_4.3.1-0ubuntu1_amd64.deb ...
Dépaquetage de cx-freeze (4.3.1-0ubuntu1) ...
dpkg: des problèmes de dépendances empêchent la configuration de cx-freeze :
cx-freeze dépend de python-support (>= 0.90.0) ; cependant :
Le paquet python-support n'est pas installé.
dpkg: erreur de traitement du paquet cx-freeze (--install) :
problèmes de dépendances - laissé non configuré
Traitement des actions différées (« triggers ») pour man-db (2.7.5-1) ...
Des erreurs ont été rencontrées pendant l'exécution :
cx-freeze
Je tente de corriger avec sudo apt-get -f install
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Correction des dépendances... Fait
Les paquets suivants seront ENLEVÉS :
cx-freeze
0 mis à jour, 0 nouvellement installés, 1 à enlever et 35 non mis à jour.
1 partiellement installés ou enlevés.
Après cette opération, 1 008 ko d'espace disque seront libérés.
Souhaitez-vous continuer ? [O/n] o
(Lecture de la base de données... 380291 fichiers et répertoires déjà installés.)
Suppression de cx-freeze (4.3.1-0ubuntu1) ...
Traitement des actions différées (« triggers ») pour man-db (2.7.5-1) ...
cx-freeze world.py
cx-freeze : commande introuvable
Le contenu de world.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
print "Hello World";
Dernière modification par Zer00CooL (02-01-2017 17:51:57)
Hors ligne
Je relis et remarque que je n'ai pas fait de configuration / installation du setup.py
Hors ligne
dpkg: des problèmes de dépendances empêchent la configuration de cx-freeze :
cx-freeze dépend de python-support (>= 0.90.0) ; cependant :
Le paquet python-support n'est pas installé.
Peut être que avec python-support ...
Dernière modification par Zer00CooL (02-01-2017 23:05:10)
Hors ligne
Peut être que avec python-support ...
Oui il faut installer toutes les dépendances naturellement.
Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D
Hors ligne
sudo apt-get install python-support
[sudo] Mot de passe de user :
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Aucune version du paquet python-support n'est disponible, mais il existe dans la base
de données. Cela signifie en général que le paquet est manquant, qu'il est devenu obsolète
ou qu'il n'est disponible que sur une autre source
E: Le paquet « python-support » n'a pas de version susceptible d'être installée
On me dit que la version de cx-freeze proposée n'est peut être pas à jour.
Dernière modification par Zer00CooL (03-01-2017 16:52:06)
Hors ligne
Pourtant xenial est égal à la version de mint que tu as il me semble ?
Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D
Hors ligne
cx-freeze est un paquet propriétaire ?
Je suis désolé, d'avoir flood et reflood.
J'espérais vraiment comprendre et réussir à installer ce paquet, pour compression un simple exécutable python.
Du coup, je ne sais pas si c'est moi qui ai fait une erreur dans l'installation, ou non.
Hors ligne
cx-freeze est un paquet propriétaire ?
non
Je suis désolé, d'avoir flood et reflood.
J'espérais vraiment comprendre et réussir à installer ce paquet, pour compression un simple exécutable python.
Du coup, je ne sais pas si c'est moi qui ai fait une erreur dans l'installation, ou non.
Pour moi il suffit d'installer les dépendances et voilà, mais comme je ne tourne pas sous mint, je ne peux pas tester une installation dessus, à l'époque j'ai simplement compilé sur debian.
python setup.py build
python setup.py install
c'est tout.
Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D
Hors ligne
Pages : 1