¿Cómo ejecutar un programa Python directamente?
He creado un archivo .py (por ejemplo, mnik.py ) en gedit. Funciona sin problemas en la terminal.
El comando va
python3 mnik.py
Pero cada vez que hago clic en el archivo, se abre con gedit. No puedo ejecutarlo directamente haciendo clic.
¿Qué hacer?
python3
en la línea de comando con un argumento es una excelente manera de ejecutar scripts de Python. De hecho, es la forma más fácil de ejecutar un programa que requiere un terminal y argumentos (como muchos de mis propios guiones, sino también programas comomercurial
,sphinx
). ¿Quiere explicar por qué lo que he estado haciendo durante más de 20 años no es la forma correcta?./scriptname
que se ejecute un script de Python no valida su afirmación de que ejecuta un script desde la línea de comandos mediantepython3
. Hay diferentes formas de ejecutar scripts de Python y hacerpython3 ./mnik.py
también es una forma adecuada de hacer las cosas, es simplemente diferente (y al menos obtienes Python3 de esa manera y no Python2, ya que es más probable con la mayoría de las respuestas hasta ahora)Respuestas:
Hay dos cosas necesarias.
#!
línea que le indique al sistema operativo qué intérprete usar. En su caso, su primera línea en el código debe ser#!/usr/bin/env python3
Debe abrir el administrador de archivos, vaya a Editar -> Preferencias -> Comportamiento, y seleccione qué hacer con los archivos ejecutables
chmod +x /path/to/script.py
y en la GUI, haga clic derecho en el archivo y modifique sus Propiedades -> PermisosLa primera línea se llama línea shebang y debe comenzar con
#!
; lo que viene después es el nombre del intérprete que leerá su código. En caso de que lo esté usandopython3
, puede usarlo#!/usr/bin/python3
o#!/usr/bin/env python3
para portabilidad. Si no está utilizando código que sea específico para la versión de Python, simplemente use#!/usr/bin/env python
Nota sobre la salida del script:
Si su script imprime la salida a la consola, necesitará tener una ventana de terminal o, alternativamente, usar diálogos de GUI como
zenity
. Prefiere usar laRun in Terminal
opción si quieres ver el código. Si desea que el script haga algo sin ver la salida de la consola, use laRun
opción.Además, si tiene parámetros de línea de comandos, como
sys.argv[1]
en el script, no puede configurarlos a menos que tenga abierta la ventana de terminal.fuente
Files
programa en el lanzador. En Windows-Hablar sería explorador de archivos oMy Computer
nautilus
en el Terminal#!
(shebang) en los scripts de Python, y qué forma debería tomar?#!/usr/bin/env python
invocará Python2 en la mayoría de los sistemas Ubuntu. Aunque puede hacer que un script de Python escrito para Python3 sea compatible con Python2, no supondría que el OP lo haya hecho.#!/usr/bin/env python3
parece un shebang más apropiadoDebe colocar la ubicación del programa para ejecutar su código en la primera línea y luego debe configurar el script para que se ejecute como un archivo ejecutable cambiando sus permisos. Esto supone que está iniciando sus aplicaciones desde la terminal u otro script.
Encuentra tu instalación de Python
Agregue la ubicación de los programas a la línea superior de su programa con un
#!
frenteEstablecer el script de Python para tener derechos de ejecución
Ahora puedes ejecutar el script directamente
Listado de código para test.py
fuente
Si desea ejecutar este programa sin escribir
python3 mnik.py
, debe hacer que el script sea ejecutable y asegurarse de quepython3
se utiliza para ejecutarlo.Lo primero que puedes hacer corriendo
lo segundo que puede hacer agregando como primera línea de un script una línea shebang que invoca python3 . En todos los sistemas Ubuntu con los que he trabajado que vienen con python3, puede obtener python3 agregando esta línea en la parte superior:
Después de esos dos cambios, puede escribir
/path/to/mnik.py
,./mnik.py
o simplementemnik.py
(el último requiere que el script esté en su RUTA).Si realiza estos cambios es posible que también desee considerar el cambio de nombre
mnik.py
amnik
, que es una práctica común con los paquetes de Python con los comandos que se publican en PyPI.fuente
/
desaparecido en el frente allí. Por favor explique qué es "It" en su comentario. ¿Es el bash shell? ¿Es Windows Command.com? ¿Desde qué invoca el programa y con qué sintaxis de línea de comandos?