programa - Compilación cruzada de una secuencia de comandos de Python en Linux en un ejecutable de Windows
ejecutar script python en windows (4)
¿ PyInstaller ?
Parece que 1.4 admite la compilación cruzada
http://www.pyinstaller.org/browser/tags/1.4/doc/CHANGES.txt dice:
Agregue soporte para compilación cruzada: PyInstaller ahora puede construir ejecutables de Windows cuando se ejecuta bajo Linux. Ver documentación para más detalles.
No lo intenté yo mismo.
Espero que ayude
Tengo un script de Python que me gustaría compilar en un ejecutable de Windows. Ahora, py2exe
funciona bien desde Windows, pero me gustaría poder ejecutar esto desde Linux. Tengo Windows en mi máquina de desarrollo, pero Linux es mi principal plataforma de desarrollo y me estoy cansando de reiniciar en Windows solo para crear el .exe
. Tampoco quiero tener que comprar una segunda licencia de Windows para ejecutar en una máquina virtual como VirtualBox. ¿Algunas ideas?
PD: soy consciente de que py2exe
no compila exactamente el archivo python tanto como lo hace con el intérprete de Python. Pero de cualquier manera, el resultado es que no necesita Python instalado para ejecutar el script.
Como se menciona en otros contestadores, la característica de compilación cruzada se elimina de PyInstaller desde 1.5
. Aquí, muestra cómo empacar un ejecutable de Windows a partir de scripts Python usando PyInstaller en wine .
Paso 1: instala Wine y Python
sudo apt-get install wine
wine msiexec /i python-2.7.10.msi /L*v log.txt
PD: Las versiones más nuevas de Python ya incluyen pip
(se usa para instalar el pyinstaller
). Descargue el paquete de instalación de Python desde here (p. Ej., python-2.7.10.msi
)
Paso 2: instala PyInstaller en el vino
$ cd ~/.wine/drive_c/Python27
$ wine python.exe Scripts/pip.exe install pyinstaller
Successfully installed pyinstaller-3.1.1 pypiwin32-219
Paso 3: Empaquetar scripts de Python
pyinstaller
scripts de Python (p. Ej., HelloWorld.py
) con pyinstaller
.
$ wine ~/.wine/drive_c/Python27/Scripts/pyinstaller.exe --onefile HelloWorld.py
# filename: HelloWorld.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print(''Hello World!'')
El archivo ejecutable de Windows se encuentra en dist/
.
$ wine dist/HelloWorld.exe
Hello World!
fixme:msvcrt:__clean_type_info_names_internal (0x1e24e5b8) stub
Consulte here para la descripción detallada.
He probado py2exe dentro del vino, y funciona. Necesitarás instalar Python en Wine para que funcione, o si solo usas la libarary estándar, puedes agrupar py2exe con py2exe de la máquina de Windows y luego usarlo en wine. Solo tenga en cuenta que necesita la misma versión de las bibliotecas ms visuales de C en vino que se utilizaron para compilar Python o las cosas no funcionarán correctamente.
Puede ejecutar Windows en VirtualBox para ejecutar py2exe. VBox ofrece un poderoso cliente de línea de comandos para automatizar tareas, por lo que es algo que probablemente pueda integrar en su proceso de desarrollo con facilidad.