Je souhaite créer une application graphique qui devrait fonctionner sous Windows et Mac. Pour cela, j'ai choisi Python.
Le problème est sur Mac OS X.
Il existe 2 outils pour générer un ".app" pour Mac: py2app et pyinstaller.
Les questions sont:
P.S. J'utilise deux ordinateurs (Windows et pour Mac), Python 2.7, wxPython, py2exe, py2app et pyinstaller.
Aussi, j'ai vérifié ces sites:
Comment configurer py2app pour inclure le code source dans l'exécutable, afin que les utilisateurs finaux n'auront pas accès à mon programme?
Sauf si vous piratez très sérieusement l'interpréteur python (et incluez la version mutilée), il n'y a pas de très bon moyen de cacher la source à un utilisateur moyennement qualifié et déterminé. Je crois fermement que cela est également vrai sous Windows. Fondamentalement, que vous incluiez la source vraie ou le bytecode, une version assez propre de la source peut être récupérée. Plus important encore, à mon avis, à moins d’inclure le code source réel (contrairement au bytecode, vous introduisez une dépendance possible à la version de l’interpréteur).
Comment convertir un exécutable UNIX en Mac ".app"?
Qu'entendez-vous par un exécutable UNIX? Un binaire Darwin (OS X) [qui n'est pas réellement UNIX]? Cela peut être fait en utilisant les types d’outils que vous avez déjà mentionnés, mais cela doit être fait avec précaution pour éviter les dépendances de la bibliothèque.
Si vous souhaitez simplement insérer un binaire en ligne de commande dans une fenêtre, il est assez facile à réaliser et la suite gratuite XCode propose plusieurs exemples qui pourraient servir (en fonction de la sortie). ).
Est-il possible de compiler le code Python avec GCC?
GCC ne compile pas Python. C’est un langage différent (bien que la famille gcc utilise des outils prenant en charge plusieurs interfaces de langage, mais pas Python). Il existe des outils qui tentent de traduire Python en C, et vous pouvez ensuite compiler cela en un véritable fichier binaire, mais cela ne fonctionne que pour les programmes qui évitent certains types de constructions, et le processus (et les restrictions) doivent également appliquer vos bibliothèques.
Un projet pour permettre cela est Cython. Cela fonctionne bien pour certains types de code, principalement du code numérique, mais il n’est pas simple d’installer et d’exploiter, surtout si vous voulez produire quelque chose qui fonctionne sur plusieurs ordinateurs différents.
Sous Windows, rien de plus simple, j’ai créé un fichier "exe" à partir de code Python et le travaux. Est-il possible de créer un seul fichier "app" pour Mac?
Je dois dire que je suis sceptique - très sceptique - à ce sujet. Tout comme dans le cas d’OS X, le fichier exe contient presque certainement le code source accessible de manière triviale.
Une astuce assez simple consiste à chiffrer le code source, puis à le déchiffrer à la volée, mais cela me semble être une source de problèmes non négligeable.
PyInstaller créera automatiquement des ensembles sous Mac OSX pour les exécutables fenêtrés. Lorsque vous exécutez ypinstaller.py, assurez-vous de passer l’option "--windowed".
Cette fonctionnalité est documentée sur le site Web de pyinstaller
Si vous n'êtes pas complètement engagé dans wxPython (et pour tous ceux qui recherchent un framework d'interface graphique Python multi-plateformes), je vous recommande de consulter Kivy . C'est multi-plateforme, accéléré par le GPU, et cela fera le packaging de l'application pour vous. Il est facile d’y accéder, il a une architecture bien pensée et vous offre une flexibilité incroyable en termes d’interface. C'est la meilleure façon que j'ai trouvée de créer une application d'interface graphique Python multi-plateforme.
cx_Freeze était le choix ..__ Je l'utilise pour compresser mon programme python dans une application Mac OS X. Ce qui fonctionne comme un charme.
Automator affiche un script de script en Python dans un fichier, sélectionnez le moment idéal pour imprimer une copie d'écran en un seul fichier, puis cliquez sur le bouton droit de la souris. come farlo realmente, à propos de Forniremo istruzioni dettagliate (verificato per funzionare su Yosemite):
run
. Voir les autres images du script du script shell Esegui - Cliquez ici pour en savoir plus sur l'éditeur.Pour plus de détails, téléchargez l'application en $HOME/Applications
and verrà visualizzata dans Spotlight.
Voir plus de détails sur les options d'achat et de livraison des cartes fantômes, cliquez ici pour afficher les options du menu, menu, menu, menu, menu, menu, carte Platypus - une application open source pour la création de médias natifs pour MacOS.
2: Vous ne pouvez pas le "convertir", mais vous pouvez déplacer l'exécutable vers App.app/Contents/MacOS/something
dans un fichier .app, avec CFBundleExecutable
défini sur "quelque chose". Cela ne serait généralement pas recommandé.
Je n'ai pas essayé avec de gros projets Python, mais pour mes propres scripts, le moyen le plus simple que j'ai trouvé était d'utiliser Automator
Vous pouvez créer de manière interactive un projet d'application avec l'action Exécuter un script shell, puis coller votre script dans son éditeur, sélectionner votre programme shell (/ usr/bin/python), puis enregistrer le projet. Et vous avez vous-même une application native pour Mac.
Automator peut également être piloté par AppleScript. Vous pouvez ainsi canaliser ce processus de conversion py-2-app vers vos scripts de génération.
Je n'ai jamais testé un programme d'interface graphique avec ce dernier, donc je ne sais pas si vous en serez satisfait. Mais je voudrais essayer car vous vous demandez peut-être à quel point tous les modules/applications python tiers cités sont bien gérés, et combien de temps ils dureront. Livré avec OS X, Automator restera probablement, à moins qu'Apple ne soit VRAIMENT fatigué.
Ayant utilisé py2exe pour les utilisateurs de Windows afin de ne pas avoir à traiter avec les versions de bibliothèque, j'ai déchiré les programmes compilés, ils incluent les fichiers de bytecode python. Bien que vous puissiez en faire une violation de la licence en regardant à l'intérieur, le fait est que si un ordinateur peut les exécuter, je peux les lire. Il est possible de compiler des programmes python avec gcc, via un préprocesseur C (essayez de chercher 2c.py sur Google), je ne sais pas si l’un d’entre eux supporte GCC. Encore une fois, vous ne gagnez pas en sécurité grâce à leur utilisation, mais vous pouvez obtenir une amélioration significative de la vitesse.
Le seul moyen est py2app. Vous avez pas d'autre moyen. Désolé .. Les recherches que vous avez faites semblent très solides et vous n'avez rien oublié.
Une personne motivée pourrait probablement reconstituer le code source utilisable à partir du bytecode Python dans votre application, de sorte que vous pourriez reconsidérer votre opposition à py2app. Si vous ne faites pas confiance à vos utilisateurs finaux, pourquoi faites-vous affaire avec eux?