2009-12-10 13 views
2

J'ai écrit une belle application Python qui est essentiellement un proxy HTTP pour les modems SMS, et j'aimerais en faire une application double-cliquable sur Mac. Jusqu'à présent, j'ai notamment un fichier .commmand qui est le double-cliquable, qui se compose essentiellement deCréation d'une application Python/py2app qui ouvre simplement un terminal au lancement?

cd `dirname $0` 
(sleep 8;open http://127.0.0.1:8080/)& 
mac/slingshotsms.app/Contents/MacOS/slingshotsms 

Comment puis-je l'exécutable principal .app appeler un autre lieu/ou ce qui est la meilleure façon de faire un application qui est essentiellement un wrapper pour un utilitaire de terminal et affiche seulement sa sortie? Actuellement, un double-clic sur l'application va utiliser l'utilitaire ouvert sur Mac - Je veux émuler le comportement de double-cliquer sur Sommaire/MacOS/slingshotsms en double-cliquant sur l'icône de l'application. des conseils?

Répondre

1

Si vous cherchez 'facile', essayez de donner un suffixe .command à votre script python, et assurez-vous qu'il est exécutable. Par exemple:

#!/usr/bin/env python 
# file: hello.command 

print 'hello world' 

Si vous cherchez 'poli', alors vous voudrez probablement en savoir plus sur Launch Services, PyObjC, Interface Builder, les fichiers NIB, emballages d'applications, et toutes sortes de Mac OS spécifique-X détails de la technologie. Mais, notez que PyObjC est presque impossible à utiliser pour quelque chose de non trivial sans déjà savoir, plus ou moins, comment faire la même tâche en utilisant les API Cocoa Objective-C. PyObjC est un wrapper assez mince autour de ces API, et vous devez connaître les idiomes de Cocoa/modèles de conception pour comprendre comment les pièces mobiles s'emboîtent.

+1

Hey, J'utilise py2app et le système setuptools afin que je puisse avoir toutes les dépendances de cette application empaquetée et un environnement Python inclus ... donc avoir un fichier .command ne jive pas vraiment ici. – tmcw

0

Écrivez une application AppleScript qui lance Terminal et exécute votre script Python (qui se trouve dans l'ensemble de l'application).

1

Si vous ne avez pas réellement besoin d'un terminal, mais veulent juste une enveloppe d'application autour d'un script, jetez un oeil à Platypus