2010-08-30 19 views
10

Je travaille sur une application que j'ai besoin d'être multi-plateforme. Je voudrais utiliser Python pour cela, et je cherche des toolkits GUI qui rendent la programmation d'interface simple et facile. Après une légère chasse, j'ai trouvé PythonCard. Il semble que cela corresponde parfaitement à la facture, mais je ne suis pas certain qu'il sera possible de la compiler en un exécutable approprié pour chaque système d'exploitation. J'ai trouvé these instructions, mais ils ont 6 ans.Y at-il une bibliothèque GUI pour Python qui vous permet de compiler vers un EXE (windows) et APP (Mac)?

Quelle que soit la solution que je choisis doit prendre en charge les éléments suivants:

  • Ecrire une interface graphique pour travailler sur Windows et Mac OSX
  • doit « compiler » dans un fichier facilement distribuables pour les deux fenêtres/mac
  • Le fichier compilé ne doit pas nécessiter l'installation de Python sur l'ordinateur de l'utilisateur

Quelqu'un peut-il recommander une bibliothèque/solution avant de devoir naviguer dans le monde désolé de Java?

Répondre

4

Je pense que la réponse ici est moins sur la boîte à outils graphique particulière et plus sur la distribution des applications python autonomes. Personnellement, j'ai trouvé les outils pour cela un peu moins parfaits que je ne le voudrais, mais après quelques finagling, ils font le travail. Le candidat le plus susceptible de répondre à vos besoins est le cx_Freeze. Bien qu'il existe un py2exe spécifique à Windows et un py2app spécifique au Mac, cela pourrait remplir la facture si cx_Freeze est insuffisant.

+0

Avez-vous essayé cx_freeze? Lorsque nous avons décidé quel programme utiliser, nous avons rencontré des problèmes en essayant d'intégrer la liaison python de notre bibliothèque C++/Qt dans le fichier final. Peut-être, nous ne l'avons pas essayé assez dur, mais Py2Exe était parfait et simple :) –

+0

Honnêtement, non. Je n'ai pas. La poignée de fois que j'ai eu besoin de déployer une application python autonome a été sur Windows seulement et pour cela j'ai utilisé py2exe. C'était il y a plusieurs années pourtant et je n'ai pas eu la cause de revoir la question pour voir ce qui a changé. – Rakis

4

Utilisez PyInstaller pour distribuer une application à l'aide des kits d'outils PyQt ou WxPython. Depuis le site Web:

PyInstaller est un programme qui convertit (packages) programmes Python en exécutables autonomes, sous Windows, Linux et Mac OS X.

Quant aux boîtes à outils graphiques, PyInstaller is documented pour travailler avec Qt3, Qt4 et WxPython.

StackOverflow contributeur dF, uses PyInstaller "pour une application qui dépend de PyQt, PyQwt, numpy, scipy et un peu plus."

0

Hmm.

Peut-être qu'il serait préférable de déplacer mon message aux commentaires, mais. Pourquoi voulez-vous «compiler» du code python, et pourquoi pensez-vous qu'un framework GUI devrait fournir des fonctionnalités d'empaquetage/installation?

Dans notre société, nous avons écrit l'application graphique multi-plateforme et bien sûr nous devons le rendre facilement livrable pour les clients. Donc, nous avons trouvé un framework GUI approprié avec les bindings python (Qt), puis nous avons choisi la méthode pour cacher les détails inutiles sur la réalisation et la disparition des dépendances (Py2Exe pour Windows, Py2App pour Mac, et rien pour Linux, mais vous pouvez essayer PyInstaller ou cx- gel).

Installation pour chaque OS réalisé de cette manière, selon le principe du moindre étonnement. C'est pourquoi nous n'avons pas empaqueté la version linux dans une sorte d'exécutable binaire.

0

Si vous voulez que votre application semble natif, alors wxPython est la solution. PyQt peut sembler natif, mais il ne semble pas qu'il se comporte toujours d'une manière native (selon certains threads que j'ai lus).Pour construire les binaires, utilisez py2exe ou quelque pour Windows et pour Mac py2app

0

Pour les concepteurs wxPython GUI check this question. J'ai brusquement essayé boa-contstructor mais je l'ai trouvé trop limitatif - car tous les widgets ne sont pas supportés. AFAIK aucun des concepteurs de wxpython ne supporte tous les widgets (au moins atleast).

Personnellement, je trouve plus rapide et plus facile de coder à la main mes GUI. J'ai dit que ça ne m'a pris que quelques jours pour devenir raisonnablement confortable/familier wxpython. Si vous avez besoin de faire autre chose que de créer une application simple, alors prendre un peu de temps pour apprendre wxpython va payer ses dividendes.

Si votre lié à l'idée d'avoir un concepteur graphique de descente alors votre meilleur pari est probabaly PyQt que ce à mon humble avis est la seule boîte à outils qui a un éditeur solide mature - Qt Designer

En ce qui concerne la création d'excutables autonomes Ive utilisé py2exe pour les fenêtres. py2app fait la même chose pour mac même si je n'ai pas encore essayé.

Pour fenêtres installateurs caisse this thread

+0

Ah .. S'il y avait un forum ici, pas SO.com ... Un autre holywar Qt vs WxWidgets (et peut-être handcode vs concepteurs visuels) aurait été commencé :) Mais. –

+0

bien chanceux ce n'est pas un forum alors que ce n'était pas mon intention de commencer une guerre sainte !, juste pour offrir mon humble avis d'expérience personnelle. – volting