Empecé a aprender Python y también soy un nuevo usuario de Ubuntu. Necesito saber las formas de compilar los .py
archivos. He intentado con el comando
python "hello.py"
¿Cuáles son las otras formas de compilar Python?
Empecé a aprender Python y también soy un nuevo usuario de Ubuntu. Necesito saber las formas de compilar los .py
archivos. He intentado con el comando
python "hello.py"
¿Cuáles son las otras formas de compilar Python?
Respuestas:
También tenga en cuenta que no necesita compilar un .py
archivo para ejecutarlo. Python es un lenguaje interpretado, y puede ejecutar los scripts directamente, ya sea usando:
python hello.py
O haga que su script sea ejecutable agregando #!/usr/bin/env python
a la parte superior del script, haciendo que el archivo sea ejecutable chmod +x hello.py
y luego ejecute:
./hello.py
El hecho de que Python compila internamente su .py
script para codificar en bytes los .pyc
archivos por razones de rendimiento es un detalle de implementación, y a menos que tenga una buena razón para hacerlo, deje que Python decida cuándo y si compilar.
chmod +x
), ¿cómo está leyendo el intérprete el guión?
#!/path/to/interpreter
, el núcleo realmente ejecuta lo que se declara allí, pasando la ruta del script como argumento. En mi ejemplo, cuando ejecutas ./hello.py
lo que realmente se ejecuta es /usr/bin/env python ./hello.py
. Ver en.wikipedia.org/wiki/Shebang_(Unix)
chmod +x
concesiones se ejecutan y no tocan los permisos existentes, por lo que presumiblemente es legible además de ser ahora ejecutable.
Mira este enlace Compilar en Python
En el medio de la página, habla sobre el módulo py_compile que se puede importar. La sintaxis es la siguiente:
import py_compile
py_compile.compile("file.py")
Este método de compilación tampoco ejecutará el módulo, como ejecutar python file.py.
También hay un método que compila un árbol de directorios completo, pero le dejaré revisar el enlace para ver cómo se ejecuta.
Espero que esto ayude.
También puedes probar compileall
:
python -m compileall ./
Puede compilar scripts de Python en un código binario usando varios métodos, pero he descubierto que usar Nuitka es más eficiente.
Nuitka es un compilador de Python a C ++ que admite casi todas las versiones de python.
La sintaxis del comando es tan fácil como
nuitka hello.py
Vaya a http://nuitka.net/doc/user-manual.html para obtener más información.
-O
indicador, comopython -O -m py_compile …
, que "activará las optimizaciones básicas". Principalmente elimina lasassert
declaraciones y elif __debug__
código, por lo que para la mayoría del código no tiene ningún efecto. Consulteman python
y "¿Qué hace la optimización de Python ...?" Para obtener más detalles.