
Deseo que los programas de Python se ejecuten en una ventana haciendo clic en un icono.
Este es el primer día en el que enseño yo mismo el tipo de codificación y Ubuntu, por lo que se agradecen las explicaciones excesivas y los detalles adicionales.
Ejemplo de código que estoy usando
print("Game Over")
input("\n\nPress the enter key to exit")
Se ejecuta correctamente en IDLE, pero cuando hago clic en el ícono del archivo .py, se abre un editor en lugar de un programa/ventana.
Pasos que he hecho hasta ahora
- Hice clic derecho en el archivo .py y configuré permisos para "permitir la ejecución del archivo como programa"
- Leí todo lo que pude y parece indicarme información que está por encima de mi cabeza.
Ejemplos
#!/usr/local/bin/python
#!/usr/bin/env python
CHMOD X
Ninguno de los cuales entiendo o sé dónde utilizar.
Estoy usando Ubuntu 14.04 y Python 3
Gracias de antemano.
Respuesta1
Aunque su pregunta puede estar al límite por más de una razón (demasiado amplia, fuera de tema, más de un tema por pregunta, al borde de una cantidad de casi duplicados), responderé las preguntas.
La primera pregunta: acerca de ejecutar un script (solo texto) "desde un ícono", como lo mencionas:
Su secuencia de comandos es solo de texto y debe ejecutarse en
Idle
una ventana de terminal. Eso significa que si desea ejecutarlo haciendo doble clic en un icono, deberá crear un.desktop
archivo, en el que se encuentradefinidopara ejecutar el script dentro de una ventana de terminal. Por cierto,
estos archivos forman parte de prácticamente todas las aplicaciones GUI instaladas en Ubuntu..desktop
Un ejemplo muy básico, adecuado para su guión:
[Desktop Entry] Name=Test Exec=/home/jacob/Bureaublad/test.py Terminal=true Type=Application
Las líneas más interesantes son:
Exec=/home/jacob/Bureaublad/test.py
en el que se define el comando para ejecutar su script.
Lea más sobre cómo crear el comando, si el script es ejecutable o no, usando la extensión de idioma shebang, consulteaquí.y la línea:
Terminal=true
Eso dice que el script debe ejecutarse en una ventana de terminal.
Puede ampliar su
.desktop
archivo con un ícono y muchas más opciones, dependiendo de para qué lo esté usando exactamente, consulteaquí.Cómo utilizar el
.desktop
archivo- Pegue el código anterior en un archivo vacío y guárdelo como
test.desktop
. Edite el comando en la líneaExec=/home/jacob/Bureaublad/test.py
, de acuerdo con el enlace que agregué para crear comandos para ejecutar un script. Si usa el archivo desde su escritorio, hágalo ejecutable con el comando:
chmod +x /path/to/Test.desktop
Alternativamente, puede copiar (mover) el
.desktop
archivo para~/.local/share/applications
que esté disponible en Dash. Las aplicaciones instaladas globalmente almacenan sus.desktop
archivos en formato/usr/share/applications
. En los dos últimos directorios, no es necesario que el.desktop
archivo sea ejecutable.- Pegue el código anterior en un archivo vacío y guárdelo como
Acerca de las líneas de ejemplo que no entiendes
Las líneas:
#!/usr/local/bin/python #!/usr/bin/env python
sonshebangs; la primera línea de un script, indicando al shell cómo ejecutarlo si el script es ejecutable, y usted lo ejecuta sin
python
antes la ruta al script. Dado que usaspython3
, el shebang en tus scripts normalmente debería ser:#!/usr/bin/env python3
Más sobre esto y la relación entre shebang y comando en el enlace de arriba.
CHMOD X (?)
chmod +x
Es probablemente lo que quieres decir. Como se explicó anteriormente, puede hacer que un archivo sea ejecutable con el comando:chmod +x /path/to/file
Respuesta2
Como mencionaron otros, chmod +x es necesario para que el programa sea ejecutable. Por ejemplo, para el programa hello.py, ingresarías esto en la terminal:
$ chmod +x hola.py
Ahora, no sé si es cierto en versiones anteriores, pero en Ubuntu 16.04 LTS es necesario que el comportamiento de los íconos esté configurado para permitir hacer clic en el ícono para ejecutar el programa. Puedes hacer esto de la siguiente manera:
Vaya a una ventana del explorador de archivos, luego mueva el cursor del mouse a la parte superior de la pantalla y seleccione editar > preferencias > comportamiento, luego seleccione 'Ejecutar archivos de texto ejecutables cuando se abran' o 'Preguntar cada vez'.
Además, para evitar que la terminal se cierre al final del programa (por ejemplo, si desea mantener la salida del programa a la terminal en la pantalla), en Python3.5 debe colocar esta línea al final del programa. :
aporte()
Espero que esto ayude.
Respuesta3
Escriba un archivo .bat, que se ejecuta en el símbolo del sistema. En el archivo, escriba solo una línea como: C:/Python/Python38/python.exe c:/MyProject/mainFile.py
Donde, C:/Python/Python38/python.exe es Python 3.8 y c:/MyProject/mainFile.py es el archivo de script de Python que se ejecutará.
Cree un acceso directo al archivo .bat y colóquelo en la pantalla de Windows como un icono. Eso es.