compliation [pyhton] - Python - Programmation
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.
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.
Marsh Posté le 25-02-2005 à 15:43:37
Ah oué quand même
Tu devrais peut-être signaler ça sur le wiki de py2exe.
Marsh Posté le 25-02-2005 à 16:35:54
Bonbonbon...
1- C'est pas de la compilation bordel
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
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 |
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.
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
Marsh Posté le 01-03-2005 à 15:25:34
nebucade a écrit : bonjour, |
moi je dirais que t'as un truc qui sert vraiment à rien et qui te permet de gagner de la place : py2exe
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.
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.
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 ?
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 ? |
Et rien n'empêche de fournir l'installeur python avec si t'as assez de place à perdre pour utiliser py2exe
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.
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). |
Il n'y a pas de compilateur du tout
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.
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.
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.
Marsh Posté le 02-03-2005 à 14:24:02
KrisCool 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)
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é.
Marsh Posté le 02-03-2005 à 19:19:06
nebucade a écrit : |
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.
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...
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 .|
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.
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. 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...
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
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 .
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 ?
T'es beau va...
PS: je lirai pas les réponses, tu peux te dispenser des les écrire.
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
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.
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é.