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 19/06/2008, à 12:29

DiCiCat

[Pas possible] Freezer un code python/pygtk

Je reviends à la charge.

Je ne trouve pas la solution pour inclure un programme pygtk complet dans un executable (ou un dossier avec un executable).
J'ai reussit a le faire sous windows avec py2exe, mais impossible d'obtenir le meme resultat sur un systeme unix. Quelque soit la methode que j'utilise, il reste toujours des bibliothèques qui ne sont pas integrées et qui empêchent le programme de fonctionner sur une machine où pygtk n'est pas installé.

Je deviens completement chêvre.

J'ai essayé pyinstaller, freeze et cx_freeze et il me manque toujours la bibliotheque libffi.
Si elle n'est pas installée sur le systeme, rien a faire, ca ne fonctionne pas.

Quelqu'un a t'il un bon tuto sur le freeze d'un programme pygtk sous unix? (ou alors indiquer ici comment faire)

Dernière modification par DiCiCat (Le 19/06/2008, à 15:36)

Hors ligne

#2 Le 19/06/2008, à 14:42

aleph

Re : [Pas possible] Freezer un code python/pygtk

>DiDiCat

En fait, ce que tu veux faire est quasiment impossible. Cela ne tient ni à Python, cx_freeze ou GTK mais plus simplement à la structure de Windows ou de Linux.

Je travaille principalement sous Windows, Python, wxPython et py2exe et bien qu'utilisant wxPython les problèmes sont identiques avec pyGTK ou pyQt.

Quand tu crées une "ditribution" py2exe, tu vois que tu distribues des scripts Python, divers trucs et surtout quelques dll qui dépendent *uniquement* de la plateforme win32, par ex gdi.dll. Les nombres de ces dépendances est très minime (< 10) et se retrouvent sur toutes les plateformes Windows.

Dans le cas de Linux, les dépendances surtout celles de l'interface graphique sont telles que les inclure toutes reviendrait quasiment à redistribuer GNOME, idem pour pyQt/KDE.

Je n'ai pas d'expérience avec OS X, mais je sais que distribuer une application Python/wxPython "frozen" génèrent un fichier (dmg je crois) de plus de 100 mb. (*)

Développeur, contributeur, testeur avec et de wxPython depuis de nombreuses années, je n'ai jamais vu sur la liste des users / développeurs quelqu'un le faire pour Linux ou même fort logiquement le proposer. C'est de là que je tiens (*).

Je ne voudrais pas briser tes efforts, mais je crains que tes efforts soient vains. Distribuer toutes les dépendances est quasiment impossible ou revient, comme je l'ai déjà dit à redistriber la "moitié" de "Linux/GTK". Ce qui n'a pas trop de sens.

Par contre, si tes applications Python sont non graphiques, c'est possible. Je ne l'ai jamais fait, je sais que certains l'ont fait.

#3 Le 19/06/2008, à 14:44

aleph

Re : [Pas possible] Freezer un code python/pygtk

>DiDiCat

En fait, ce que tu veux faire est quasiment impossible. Cela ne tient ni à Python, cx_freeze ou GTK mais plus simplement à la structure de Windows ou de Linux.

Je travaille principalement sous Windows et Python, wxPython et parfois py2exe et bien qu'utilisant wxPython les problèmes sont identiques avec pyGTK ou pyQt.

Quand tu crées une "ditribution" py2exe, tu vois que tu distribues des scripts Python, divers trucs et surtout quelques dll qui dépendent *uniquement* de la plateforme win32, par ex gdi.dll. Les nombres de ces dépendances est très minime (< 10) et se retrouvent sur toutes les plateformes Windows.

Dans le cas de Linux, les dépendances surtout celles de l'interface graphique sont telles que les inclure toutes reviendrait quasiment à redistribuer GNOME, idem pour pyQt/KDE.

Je n'ai pas d'expérience avec OS X, mais je sais que distribuer une application Python/wxPython "frozen" génèrent un fichier (dmg je crois) de plus de 100 mb. (*)

Développeur, contributeur, testeur avec et de wxPython depuis de nombreuses années, je n'ai jamais vu sur la liste des users / développeurs quelqu'un le faire pour Linux ou même fort logiquement le proposer. C'est de là que je tiens (*).

Je ne voudrais pas briser tes efforts, mais je crains que tes efforts soient vains. Distribuer toutes les dépendances est quasiment impossible ou revient, comme je l'ai déjà dit à redistriber la "moitié" de "Linux/GTK". Ce qui n'a pas trop de sens.

Par contre, si tes applications Python sont non graphiques, c'est possible. Je ne l'ai jamais fait, je sais que certains l'ont fait.

#4 Le 19/06/2008, à 14:52

aleph

Re : [Pas possible] Freezer un code python/pygtk

Oups. Désolé pour ce double message et mes stupides fautes d'orthographe. Il semble que le serveur ait un peu de peine.

#5 Le 19/06/2008, à 15:00

DiCiCat

Re : [Pas possible] Freezer un code python/pygtk

arf... ben zut alors hmm
Ca m'embete bien tout ca. Enfin, ca va surtout embeter les utilisateur macosx qui voulaient une manière simple d'utiliser mon soft hmm
Je comprend mieux pourquoi je ne trouve aucune info concrète sur le web à ce sujet du coup smile

Hors ligne

#6 Le 19/06/2008, à 15:20

aleph

Re : [Pas possible] Freezer un code python/pygtk

Oui, évidemment. On trouve sur la toile des infos pour savoir comment faire quelque chose. Des explications décrivant pourquoi une chose n'est pas réalisable, c'est plus rare.

#7 Le 19/06/2008, à 15:35

DiCiCat

Re : [Pas possible] Freezer un code python/pygtk

Pourtant j'ai vu plein d'endroit où la question était posée, mais personne n'y répond jamais.
Au moins maintenant je sais que ce ne sera pas possible.
Il ne me reste plus qu'a voir si je ne ferais pas mieux de convertir mon code pygtk en wxpython... mais wxpython me parrais tres compliqué.

Hors ligne