¿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.

rmtheis
fuente
Ya respondido aquí http: //stackoverflow.com/questions/193077 / ...
Andrew Beyer
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
Vincent Van Den Berghe
fuente
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 .

Mihai8
fuente
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

Leo Pepe
fuente
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

Mohit Dabas
fuente
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

Nilesh K.
fuente
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.

dan_the_ham-man
fuente
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
Coco
fuente