[pyhton] compliation

compliation [pyhton] - Python - Programmation

Marsh Posté le 25-02-2005 à 13:28:10    

bonjour,
 
quand je complile ma source avec py2exe, j'ai plien de lib qui ne servent a rien dans librairy.zip, comment faire pour qu'il ne mette que les lib qui servent. a par les supprimé apres la compilation
 
ex: library.zip = 2Mo et apres suppression des lib ne servant pas 360 Ko et je pense que je peut encore en supprimé.

Reply

Marsh Posté le 25-02-2005 à 13:28:10   

Reply

Marsh Posté le 25-02-2005 à 13:57:43    

Qu'est-ce que tu entends par "ne servent à rien" ? Le programme s'exécute toujours correctement dans tous les cas même une fois que les libs sont supprimées ?
 
D'autre part, py2exe ne "compile" pas à proprement parler ton programme, il crée un exécutable capable d'exécuter le bytecode de ton programme et des libs requises, contenues dans un .zip.
 
Je présume que la recherche des dépendances est très sommaire, et qu'une instruction import module va importer tout le module et les modules qui en dépendent, même si tu ne te sers que de quelques fonctions dedans.


---------------
Loose Change Lies | Bars | Last.fm
Reply

Marsh Posté le 25-02-2005 à 15:08:24    

oui meme apres la suppresion ca marche.
je sais que ca ne reste que de l'interperté.
 
je ne fais que des 'from'
mais quant je dit qu'il mes n'importe quoid c'est vrai. ex :
juste un import string il me met toute la lib Tkinter, c'est quoi le rapport.
 
 

Reply

Marsh Posté le 25-02-2005 à 15:43:37    

Ah oué quand même [:miguelito loveless]
Tu devrais peut-être signaler ça sur le wiki de py2exe.


---------------
Loose Change Lies | Bars | Last.fm
Reply

Marsh Posté le 25-02-2005 à 16:28:19    

oueps bonne idée

Reply

Marsh Posté le 25-02-2005 à 16:35:54    

Bonbonbon...
 
1- C'est pas de la compilation bordel  :fou:  :fou:  :fou:  
 
py2exe ne fait "que" coller un mini interpréteur Python avec les libs dans un système exécutable, ça n'a strictement rien à voir avec une quelconque forme de compilation [:acadman]  
 
2- Il existe un certain nombre de packages que py2exe inclus automatiquement (dont TKinter), c'est connu et normal, si tu avais fait quelques recherches tu aurais vu qu'il existe un paramètre "exclude" qui permet de faire des fichiers du genre:

import sys
assert sys.version >= '2', "Install Python 2.0 or greater"
from distutils.core import setup
import py2exe
import os
 
setup(
    version = "0.0.5",
    description = "File Browser",
    name = "Browser",
 
    windows = [ {'script': "Browser.py",
                'icon_resources': [ (1, 'Icon.ico')],
                'excludes': ["pywin", "pywin.debugger", "pywin.debugger.dbgcon", "pywin.dialogs", "pywin.dialogs.list","Tkconstants","Tkinter","tcl"] ,}],
 
    options = {"py2exe": {"compressed": 1,"optimize": 2}},
     
    data_files = [('.',['Browser.nsi','Browser_silent.nsi']),('Resources',['Resources\\'+f for f in os.listdir(os.path.join(os.path.split(sys.argv[0])[0],'Resources'))])]    
    )


Message édité par masklinn le 25-02-2005 à 16:36:23

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 28-02-2005 à 09:22:36    

t'enerve pas je sais que c'est pas du compilé lol
 
merci pour l'excludes.

Reply

Marsh Posté le 01-03-2005 à 15:17:56    

a oui encore une pitite aide :  
ca existe un compilateur python et si oui lequel
merci

Reply

Marsh Posté le 01-03-2005 à 15:25:34    

nebucade a écrit :

bonjour,
 
quand je complile ma source avec py2exe, j'ai plien de lib qui ne servent a rien dans librairy.zip, comment faire pour qu'il ne mette que les lib qui servent. a par les supprimé apres la compilation
 
ex: library.zip = 2Mo et apres suppression des lib ne servant pas 360 Ko et je pense que je peut encore en supprimé.


moi je dirais que t'as un truc qui sert vraiment à rien et qui te permet de gagner de la place : py2exe

Reply

Marsh Posté le 02-03-2005 à 09:14:11    

oui mais je suis obligé de faire un .exe, pour mes programmes.
Et pour le moment c'est le seul machin truc bidule que j'ai trouvé qui le fait.

Reply

Marsh Posté le 02-03-2005 à 09:14:11   

Reply

Marsh Posté le 02-03-2005 à 09:26:28    

non t'es pas obligé

Reply

Marsh Posté le 02-03-2005 à 09:44:04    

On n'est jamais obligé, mais quand on doit donner un programme "clé en main" aux utilisateurs parce qu'on sait qu'ils n'iront pas installer Python eux-mêmes et qu'on peut pas le leur imposer (ca peut paraître bizarre comme contraintes, mais c'est hors entreprise et c'est un peu particulier).
 
Donc j'en suis à fournir des packages créés avec py2exe.
Si tu as une meilleure solution Taz, je suis tout ouïe, parce que je ne l'ai pas trouvée.


---------------
Loose Change Lies | Bars | Last.fm
Reply

Marsh Posté le 02-03-2005 à 09:46:53    

il font comment pour java ? il font comment pour .Net ? C'est quoi la contrainte d'installer un programme en plus ? Pourquoi y a des installeurs de programme java qui te font installe j2se si tu l'as pas ?

Reply

Marsh Posté le 02-03-2005 à 11:19:23    

Taz a écrit :

il font comment pour java ? il font comment pour .Net ? C'est quoi la contrainte d'installer un programme en plus ?


 [:benou_+1]  
 
Et rien n'empêche de fournir l'installeur python avec si t'as assez de place à perdre pour utiliser py2exe


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 02-03-2005 à 14:08:05    

Et bien c'est pour ca que j'utilise pas java, pour evité un interface (interpreteur).
Et je ne peut pas faire installé python sur toute les machines, car la c'est tres politique.
Mais je suis d'accord avec le principe.
 
Si non a ce que j'ai compris y'a pas de vrai compilateur python.

Reply

Marsh Posté le 02-03-2005 à 14:08:54    

nebucade a écrit :

Et bien c'est pour ca que j'utilise pas java, pour evité un interface (interpreteur).
Et je ne peut pas faire installé python sur toute les machines, car la c'est tres politique.
Mais je suis d'accord avec le principe.
 
Si non a ce que j'ai compris y'a pas de vrai compilateur python.


Il n'y a pas de compilateur du tout


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 02-03-2005 à 14:10:05    

snif oki merci
 
il me reste plus cas le faire je vous le ferai parvenir une fois fini dans 20 ans lol.

Reply

Marsh Posté le 02-03-2005 à 14:14:49    

Taz a écrit :

il font comment pour java ? il font comment pour .Net ? C'est quoi la contrainte d'installer un programme en plus ? Pourquoi y a des installeurs de programme java qui te font installe j2se si tu l'as pas ?


 
 
Parce que dans l'absolu, mes contraintes sont les suivantes:
- le programme doit être exécutable sans installation, ni configuration
- je ne peux pas imposer à mes utilisateurs d'installer Python.
- le programme distribué doit être le plus réduit possible en taille (ceci incluant les runtimes)
 
C'est tout, c'est comme ça, et ça ne souffre aucune discussion, même si ça paraît complètement con à des puristes. Tu te doutes bien que si j'avais la possibilité de déployer Python chez les utilisateurs de façon transparente, je m'en priverais pas. [:groody]
 
J'ai quoi comme alternative, si je m'affranchis des contraintes ? Faire un installeur qui installe Python + wxPython (que j'utilise) silencieusement avec l'installation du soft ?  
Pour mon problème de taille de programme à distribuer je suis un peu baisé là, 10Mo rien que pour une install de Python.


Message édité par KrisCool le 02-03-2005 à 14:19:01

---------------
Loose Change Lies | Bars | Last.fm
Reply

Marsh Posté le 02-03-2005 à 14:17:24    

moi de meme!!

Reply

Marsh Posté le 02-03-2005 à 14:24:02    

KrisCool a écrit :


Pour mon problème de taille de programme à distribuer je suis un peu baisé là, 10Mo rien que pour une install de Python.


Si c'est pour un réseau (interne), dans la mesure ou Python est disponible en .msi (pour wxPy je sais pas par contre) tu peux le déployer en automatique silent en refaisant un peu le dit msi (il y a toutes les docs nécessaires dans la MSDN)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 02-03-2005 à 15:01:25    

masklinn a écrit :

Si c'est pour un réseau (interne), dans la mesure ou Python est disponible en .msi (pour wxPy je sais pas par contre) tu peux le déployer en automatique silent en refaisant un peu le dit msi (il y a toutes les docs nécessaires dans la MSDN)


 
Non, c'est malheureusement diffusé par Internet.
En gros, et pour ne pas noyer le poisson, c'est un programme utilisé au sein d'une guilde de MMORPG, pour remonter des informations depuis le jeu. Il parse un fichier texte, en extrait les informations pertinentes et les envoie à un serveur Web via une requête POST, le tout avec une interface graphique simple.
 
Cette application, j'aimerais qu'elle soit utilisée par le plus possible de gens, mais je peux pas l'imposer. Si je dois faire installer Python, c'est pas mal de gens qui vont trouver ça chiant et qui vont pas le faire. Si je fais une install "tout compris", c'est la taille du download qui en prendra un coup.
 
Pour le moment, py2exe est le meilleur compromis que j'ai trouvé.


---------------
Loose Change Lies | Bars | Last.fm
Reply

Marsh Posté le 02-03-2005 à 19:19:06    

nebucade a écrit :


Si non a ce que j'ai compris y'a pas de vrai compilateur python.


t'as du vachement te renseigner avant de commencer python. Vu ce genre de réflexion, t'aurais pas fait un programme genre love-calc que tu veux passer à tes copines ? Ah non merde, t'as des utilisateurs ... tu veux pas installer python+wx ? et ben tu recodes tout en C et la prochaine fois t'auras qu'à réfléchir un peu avant de choisir une technologie.
 
edit: ah non, j'avais raison mmorpg ... ben je crois que les gens qui jouent en ligne ont la possibilité d'installer 3 broutilles.


Message édité par Taz le 02-03-2005 à 19:20:17
Reply

Marsh Posté le 03-03-2005 à 11:20:26    

Mouais, maintenant tout ça pour faire püriste-stÿle je crois que je vais pas me faire chier des masses...


---------------
Loose Change Lies | Bars | Last.fm
Reply

Marsh Posté le 03-03-2005 à 11:29:51    

y a pas de puriste-stailleu. tu prends un langage interprété, il te faut l'interpréteur .|

Reply

Marsh Posté le 03-03-2005 à 11:31:47    

Taz a écrit :

y a pas de puriste-stailleu. tu prends un langage interprété, il te faut l'interpréteur .|


 
ca doit etre vrai.

Reply

Marsh Posté le 03-03-2005 à 11:44:17    

Taz a écrit :

y a pas de puriste-stailleu. tu prends un langage interprété, il te faut l'interpréteur .|


 
Bah py2exe c'est quoi ? C'est rien de plus qu'un exe qui embarque l'interpréteur python, les modules du programme, et c'est tout.  [:izz]  Après qu'on distribue l'interpréteur sous une forme particulière ou via le package standard, je ne vois pas ce qui est fondamentalement différent.
Là où Java et .Net (tu les citais plus haut) font la distinction entre environnement de développement et environnement d'exécution (JDK vs JRE pour Java), Python ne la fait pas, ou alors j'ai loupé un truc. Même si la distrib Python n'est pas non plus énorme, avoir un environnement d'exécution réduit est quand même parfois confortable. py2exe permet d'avoir ça, dans une certaine mesure.
 
Après, le choix du langage je l'ai fait par rapport au temps disponible pour développer l'appli. J'ai fait le point par rapport à mes connaissance sur le temps que je mettrais à la développer, et Python était le meilleur de ce point de vue là, parce que mon temps de développement était limité. Il m'aurait fallu un temps fou pour faire ça en C/C++, beaucoup de temps également pour du Java, et je n'ai jamais développé en VB.Net ou C#.
Alors bon...


Message édité par KrisCool le 03-03-2005 à 11:45:21

---------------
Loose Change Lies | Bars | Last.fm
Reply

Marsh Posté le 03-03-2005 à 11:45:59    

je lis pas ... je vois juste quelqu'un qui pleure parce qu'il faut transporter/installer 10Mo d'interpréteur/bibliothèque. Je trouve ça stupide py2exe, vu le poids que ça fait, à partir de 2/3 logiciels, ça aurait mieux valut d'installer python une bonne fois pour toutes

Reply

Marsh Posté le 03-03-2005 à 12:20:08    

si c'est de mois que tu parle, je pleure pas, je voulais juste savoir comment faire pour qu'il n'y est que les lib utile dans librairy.zip .

Reply

Marsh Posté le 03-03-2005 à 13:02:36    

Taz a écrit :

je lis pas ... je vois juste quelqu'un qui pleure parce qu'il faut transporter/installer 10Mo d'interpréteur/bibliothèque. Je trouve ça stupide py2exe, vu le poids que ça fait, à partir de 2/3 logiciels, ça aurait mieux valut d'installer python une bonne fois pour toutes


 
Heureusement que tu l'as pas lu, parce que c'est bien la seule excuse qu'on peut trouver à ton tissu de conneries.
J'ai pas parlé de 2/3 programmes, mais d'UN programme. Tu connais beaucoup de gens dans un univers "grand public" qui font tourner plusieurs programmes en python toi ?  [:kiki]  
T'es beau va...
 
PS: je lirai pas les réponses, tu peux te dispenser des les écrire.


Message édité par KrisCool le 03-03-2005 à 13:04:45

---------------
Loose Change Lies | Bars | Last.fm
Reply

Marsh Posté le 03-03-2005 à 13:40:13    

nebucade a écrit :

si c'est de mois que tu parle, je pleure pas, je voulais juste savoir comment faire pour qu'il n'y est que les lib utile dans librairy.zip .

recode en C static

Reply

Marsh Posté le 11-03-2005 à 13:51:25    

Taz a écrit :

recode en C static


Franchement, en quoi tu peux décider ce qui est bon ou pas ? Si il a envie de prendre py2exe, libre à lui... Maintenant tu fais ce que tu veux toi aussi, mais viens pas essayer d'imposer aux autres ton mode de pensée.

Reply

Marsh Posté le 11-03-2005 à 20:31:47    

farpaitement

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed