¿Cómo puedo compilar y ejecutar un archivo python (extensión * .py)?

48
user161004 16 sep. 2009 a las 20:42

7 respuestas

La mejor respuesta

python yourfile.py

Primero debe tener instalado Python. Compilará automáticamente su archivo en un binario .pyc y luego lo ejecutará por usted. Se recompilará automáticamente cada vez que cambie su archivo.

http://www.python.org/download/

30
Paul McMillan 16 sep. 2009 a las 16:44

En la mayoría de los sistemas tipo Unix, puede usar el shebang para indicarle al sistema operativo qué intérprete debe llamarse. Simplemente pones

#!/path/to/python 

En la primera línea de su archivo, donde, por supuesto, debe reemplazar "/ ruta / a /" con la ruta que tiene en su sistema. En la mayoría de los casos, esto sería "/ usr / bin / python" o "/ usr / local / bin / python". En sistemas unix, también puede buscar la ruta con

"#!usr/bin/env python" 

O invocar el comando

which python

Para encontrar el camino Luego puede ejecutar su programa con el comando

./yourprogram.py

Si le dice que no tiene permiso para hacerlo, debe usar el comando

chmod a+x yourprogram.py
1
Lucas 16 sep. 2009 a las 17:13

Si desea transformar un archivo fuente de Python en un .exe de doble clic en Windows, puede usar py2exe, que puede ayudarlo a crear un paquete fácil de distribuir.

4
SingleNegationElimination 16 sep. 2009 a las 17:09

Para agregar a la respuesta de Paul McMillan, si está en Windows y tiene Python instalado, entonces cualquier los archivos que terminan con la extensión ".py" deben estar asociados con el ejecutable python, lo que le permite ejecutarlo así:

> myfile.py

En * nix, puede comenzar el archivo con #!/usr/bin/python y ejecutarlo así:

$ ./myfile.py

En los sistemas * nix, si los dos primeros caracteres de un archivo son #!, ejecutará el archivo con el ejecutable especificado, que configuré aquí como /usr/bin/python.

6
Community 23 may. 2017 a las 12:07

Python es un lenguaje interpretado, por lo que no necesita compilarlo; solo para ejecutarlo. Como sucede, la versión estándar de python compilará esto a "bytecode", al igual que Java, etc., y lo guardará (en archivos .pyc) y lo ejecutará la próxima vez, ahorrando tiempo, si no ha actualizado el archivo desde Si ha actualizado el archivo, se volverá a compilar automáticamente.

También puede ejecutar python con un indicador -O, que generará archivos .pyo en lugar de .pyc. No estoy seguro de que haga mucha diferencia. Si la velocidad es importante, usa psyco.

Y sí, en Unix (incluidos Linux, BSD y Mac OS X, o en un shell de Unix en Windows) puede usar una línea shebang en la parte superior del archivo para que el archivo se ejecute automáticamente usando Python. En Windows, el equivalente es asociar archivos .py con python.exe y luego asegurarse de que su variable de entorno PATHEXT incluya extensiones ".PY".

Sin embargo, para Windows, lo más probable es que desee escribir un programa de interfaz gráfica de usuario en Python (posiblemente usando PyQT4 y ERIC4) que tiene un archivo .pyw como su script principal, y tiene .pyw asociado con Pythonw (que viene con Python en Windows). Esto te permitirá ejecutar scripts de Python en Windows al igual que otros programas GUI. Para publicación y distribución, probablemente desee compilar en un archivo ejecutable usando algo como py2exe, como otros mencionaron.

8
Lee B 16 sep. 2009 a las 17:44

Si solo desea compilar fuentes, sin ejecutarlas, puede hacerlo

compileall.py <directory>

Este comando compilará código python en ese directorio de forma recursiva

El script compileall generalmente se encuentra en un directorio como

/usr/local/lib/python2.6

Es decir, <prefix>/lib/python2.6 (o similar, dependiendo de los prefijos establezca una configuración de Python)

Como sugiere Lulu, debe asegurarse de que los archivos .pyc y .pyo resultantes sean ejecutables por los usuarios que le interesan.

compileall también se puede usar como módulo

import compileall
compileall.compile_dir(path)
14
Evgeny 7 oct. 2009 a las 01:36

Python compila sus archivos a bytecode antes de ejecutarlos. Eso significa que debe tener un intérprete de Python instalado en la máquina de destino.

Si no desea instalar Python en la máquina de destino, use py2exe, py2app o algo similar.

16
Georg Schölly 16 sep. 2009 a las 16:48