Ejecute Python Script en cualquier computadora Mac

¿Hay alguna manera de crear un script de Python ejecutable que pueda ejecutarse en cualquier Mac a través de una terminal, similar a un script de Bash? Necesito que cualquier usuario pueda simplemente hacer doble clic en el archivo, y debería ejecutarse. Quiero que pueda ejecutarse sin que el usuario tenga instalado Python, pero tiene que ser un script de Python, ya que tiene que interactuar con un botón HTML.

Pero, en general, cualquier computadora Mac viene con OS X y tiene Python preinstalado. ¿Y no es un poco contradictorio el requisito de CLI en Terminal para "simplemente hacer doble clic"? Sin embargo, cualquiera de los dos es fácilmente factible. Pero tienes que hacer una pregunta más específica.

Respuestas (2)

MacOS viene con python 2.7 instalado (y lo ha hecho durante casi diez años). También contiene python 2.6 y 2.5 para compatibilidad con esas versiones, que estaban incluso en versiones anteriores del sistema operativo.

Por lo tanto, cualquier secuencia de comandos compatible con Python 2.7 se ejecutará en MacOS. Si guarda el archivo con la terminación de archivo .commando .tool, se iniciará en la Terminal con un doble clic en el Finder. También deberá establecer el indicador de ejecución con chmod, como se describe en la otra respuesta. (Algunos editores de texto, como BBEdit, harán esto por usted cuando guarde el archivo).

Asegúrate de haberlo agregado #!/usr/bin/pythoncomo primera línea y listo.

¿Cómo se hace doble clic en Terminal? Además, creo que ejecutar chmodcontra el archivo es más importante que agregar un .commandsufijo aquí.
Haga doble clic en un archivo .command en el Finder para ejecutarlo en la Terminal. No se necesita bandera exec.
Acabo de probar en Mojave, obtuve el error "El archivo foo.command no se puede ejecutar porque faltan los derechos de acceso requeridos". Funciona una vez que chmod +xlo ejecuto.
ah Tienes razón. Ciertamente solía funcionar en versiones anteriores del sistema operativo: supongo que es más estricto en la seguridad. Curiosamente, .tool, que también asocia el archivo a Terminal, no produce el error y cambia el enfoque a Terminal, pero tampoco ejecuta el script. Que molesto.

Puede usar PyInstaller, que es un programa gratuito que hace exactamente lo que desea. Como dice el sitio web oficial :

PyInstaller es un programa que congela (empaqueta) programas de Python en ejecutables independientes, bajo Windows, Linux, Mac OS X, FreeBSD, Solaris y AIX. Sus principales ventajas sobre herramientas similares son que PyInstaller funciona con Python 2.7 y 3.3—3.5, crea ejecutables más pequeños gracias a la compresión transparente, es totalmente multiplataforma y utiliza el soporte del sistema operativo para cargar las bibliotecas dinámicas, lo que garantiza una compatibilidad total.

También debo mencionar que puede hacer que un archivo .py sea ejecutable como cualquier otro archivo ejecutable de Linux (Unix), así:

Este comando permite ejecutar el archivo (ver esto )

user@linux~>chmod 0755 myProg.py

y luego ejecutarlo así:

 user@linux~>./myProg.py