2011-04-09 10 views
7

Ok, aquí va. Intento aprender a usar py2app, así que creé un archivo python simple; simplemente hello_world.py¿cómo uso py2app?

#! /usr/bin/env python 
def main(): 
print "Hello" 

if __name__=="__main__": 
    main() 

que siguió un tutorial y hizo lo siguiente:

py2applet --make-setup hello.py 
python setup.py py2app -A 

Esto crea dos subdirectorios (build y dist), dentro de dist había un archivo llamado hello.app. Intenté lanzarlo a través de la GUI pero se lanzó durante menos de un segundo y luego desapareció. Entonces fui a la CL sino simplemente tratando de correr que no funcionaba así que utilicé:

python hello.app 

con el siguiente error:

/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python: can't find '__main__.py' in 'hello.app' 

He pasado todo el día buscando en Google, pero no puede encontrar tutoriales o guías, etc. realmente me pegan :-(

no sé si esto ayuda, pero esto es lo que está en el setup.py

""" 
This is a setup.py script generated by py2applet 

Usage: 
    python setup.py py2app 
""" 

from setuptools import setup 

APP = ['hello.py'] 
DATA_FILES = [] 
OPTIONS = {'argv_emulation': True} 

setup(
    app=APP, 
    data_files=DATA_FILES, 
    options={'py2app': OPTIONS}, 
    setup_requires=['py2app'], 
) 

Respuesta

10

Ha utilizado con éxito py2app: ¡se abre, imprime "hola" y luego se cierra rápidamente!

Si quieres ver algo, a continuación, hacer una pausa en ella para un poco:

print "Hello" 
import time 
time.sleep(5) 

time.sleep hace una pausa un programa para el número de segundos dado.

+0

o asegúrese de haber sangrado correctamente la función * main * o obtendrá un IndentationError! – James

+1

buena respuesta - aunque no se muestra nada porque no hay IG, pero gracias por el consejo :-) –

4

Realmente solo desea utilizar py2app con aplicaciones de GUI, o las que se ejecutan en segundo plano.

Si desea ejecutar la aplicación py2app-built desde la línea de comandos, debe ejecutar el binario dentro del paquete de la aplicación; el paquete en sí mismo no es directamente ejecutable, por lo que algo como esto:

dist/hello.app/Contents/MacOS/hello 

Para los scripts que sólo imprimir a la salida estándar puede intentar Platypus (a pesar de que no hace las cosas de la dependencia de embalaje de py2app).

+1

gracias esto funciona * pulgares arriba * –

1

Parece que estuvo funcionando todo el tiempo: el script se estaba ejecutando tan rápido que no tuve la oportunidad de verlo. Si alguien se encuentra con esto, vaya al http://svn.pythonmac.org/py2app/py2app/trunk/doc/index.html y siga el tutorial. Lea también las respuestas dadas y las respuestas que dejé.

+1

Debe aceptar la respuesta de @James. (Haga clic en la marca de verificación al lado de su respuesta). –