¿Qué uso en linux para hacer ejecutable un programa de Python?


89

Acabo de instalar un sistema Linux (Kubuntu) y me preguntaba si existe un programa para hacer que los programas de Python sean ejecutables para Linux.




2
No, no se responde ahí. Esa pregunta indaga sobre problemas de distribución.
tzot

No, no es un engaño. Esa pregunta está relacionada con la distribución de software Python evitando problemas de disponibilidad y compatibilidad de bibliotecas.
tzot

Respuestas:


159

Simplemente ponga esto en la primera línea de su script:

#!/usr/bin/env python

Haga que el archivo sea ejecutable con

chmod +x myfile.py

Ejecutar con

./myfile.py

7
Estoy confundido. ¿Cómo funciona "#! / Usr / bin / env python" cuando se supone que el hash debe convertirlo en una línea comentada? Intenté ejecutar el script sin la línea hash, pero no funcionó. Entonces, obviamente, se requiere la línea, pero ¿cómo funciona si es un comentario?
Nav

5
Si está enviando scripts a un compañero programador, está bien. Pero esta no es una forma adecuada de distribuir programas Python a los usuarios finales. ¿Qué pasa si el usuario no tiene Python instalado? ¿Qué pasa si lo hacen, pero es una versión diferente a la que escribió el programa? En general, esto solo funcionará para un pequeño porcentaje de usuarios, especialmente en Windows.
Jonathan Hartley

5
@MathManiac Si continúa como está insinuando, aproximadamente el 15% de los usuarios no podrán ejecutar su aplicación. Esta será una carga de soporte paralizante, sin mencionar una experiencia de usuario fantásticamente hostil, que generará un torrente de publicaciones odiosas de "la aplicación X apesta". Mantengo mi afirmación de que esta no es una forma adecuada de distribuir aplicaciones a los usuarios finales.
Jonathan Hartley

3
@PrahladYeri usa # / usr / bin / env python3
kingledion

4
@Nav Eso se llama Shebang . Está comentado porque no debería ser interpretado por python. Da información al sistema operativo. Más específicamente, dice qué programa se debe utilizar para ejecutar el script.
MannyC

16

Si desea obtener una aplicación binaria independiente en Python, intente utilizar una herramienta como py2exe o PyInstaller .


palabra clave: independiente
D Adams

¿Puedo descompilar la salida de PyInstaller?
SuB

14

Puede usar PyInstaller. Genera un dist de compilación para que pueda ejecutarlo como un solo archivo "binario".

http://pythonhosted.org/PyInstaller/#using-pyinstaller

Python 3 tiene la opción nativa de crear un dist de compilación también:

https://docs.python.org/3/distutils/builtdist.html


la pregunta no se trata de hacer archivos exe / elf de scripts de Python
warvariuc

8
¡Lo siento pero parece que la pregunta es justa! "Me preguntaba si existe un programa para hacer que los programas de Python sean ejecutables para Linux".
Leo Pepe

Muchas gracias, @LeoPepe, acabo de hacer un registrador de asistencia para mi clase, que toma la entrada (nombres de los estudiantes presentes) de un archivo y proporciona la asistencia en un archivo de salida, simplemente haciendo clic en un script ejecutable creado con la ayuda de pyinstaller.
Genius

4

Poner estas líneas al comienzo del código le dirá a sus sistemas operativos que busquen el programa binario necesario para la ejecución del script de Python, es decir, es el intérprete de Python.

Entonces, depende de su sistema operativo donde guarda el intérprete de Python. Como tengo Ubuntu como sistema operativo, mantiene el intérprete de Python, /usr/bin/pythonasí que tengo que escribir esta línea al comienzo de mi script de Python;

#!/usr/bin/python

Después de completar y guardar su código

  1. Inicie su terminal de comando

  2. Asegúrese de que el script se encuentre en su directorio de trabajo actual

  3. Tipo chmod +x script_name.py

  4. Ahora puede iniciar el script haciendo clic en el script. Aparecerá un cuadro de alerta; presione "Ejecutar" o "Ejecutar en Terminal" en el cuadro de alerta; o, en el indicador de la terminal, escriba./script_name.py


4

Si uno quiere hacer ejecutable hello.py

primero encuentre la ruta donde se encuentra Python en su sistema operativo con: which python

normalmente se encuentra en la carpeta "/ usr / bin / python".

en la primera línea de hello.pyuno debe agregar:#!/usr/bin/python

luego a través del comando linux chmod

uno debería hacerlo ejecutable como: chmod +x hello.py

y ejecutar con ./hello.py


1

Hago lo siguiente:

  1. poner #! / usr / bin / env python3 en la parte superior del script
  2. chmod u + x file.py
  3. Cambiar .py a .command en el nombre del archivo

Esto esencialmente convierte el archivo en un ejecutable bash. Cuando haga doble clic en él, debería ejecutarse. Esto funciona en sistemas basados ​​en Unix.


0

Otra forma de hacerlo podría ser creando un alias. Por ejemplo, en la terminal escribe:

alias printhello='python /home/hello_world.py'

La escritura printhellose ejecutará hello_world.py, pero esto es solo temporal. Para hacer que los alias sean permanentes, debes agregarlos a bashrc, puedes editarlo escribiendo esto en la terminal:

gedit ~/.bashrc
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.