Comstackción cruzada de un script de Python en Linux en un ejecutable de Windows

Tengo un script en Python que me gustaría comstackr 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 plataforma de desarrollo principal y me estoy cansando de reiniciar en Windows solo para crear el .exe . Tampoco quiero tener que comprar una segunda licencia de Windows para ejecutarse en una máquina virtual como VirtualBox. ¿Algunas ideas?

PD: Estoy consciente de que py2exe no comstack exactamente el archivo de Python tanto como el paquete de su script con el intérprete de Python. Pero de cualquier manera, el resultado es que no necesita que Python esté instalado para ejecutar el script.

¿ Miraste a PyInstaller ?

Parece que las versiones a través de 1.4 admiten la comstackción cruzada (la compatibilidad se eliminó en 1.5+). Vea esta respuesta para saber cómo hacerlo con PyInstaller 1.5+ en Wine.

http://www.pyinstaller.org/browser/tags/1.4/doc/CHANGES.txt dice:

Agregue soporte para comstackción cruzada: PyInstaller ahora puede construir ejecutables de Windows cuando se ejecuta bajo Linux. Consulte la documentación para más detalles.

Yo no lo intenté yo mismo.

Espero que ayude

Como lo mencionaron otros respondedores, la función de comstackción cruzada se elimina de PyInstaller desde 1.5 . Aquí, muestra cómo empaquetar un ejecutable de Windows desde scripts de Python usando PyInstaller en el vino .

Paso 1: Instalar el vino y Python

 sudo apt-get install wine wine msiexec /i python-2.7.10.msi /L*v log.txt 

PS: Las versiones más nuevas de Python ya incluyen pip (se usa para instalar pyinstaller ). Descargue el paquete de instalación de Python desde aquí (por ejemplo, python-2.7.10.msi )

Paso 2: Instalar 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 los scripts de Python

Empaquete los scripts de Python (por ejemplo, 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 aquí para la descripción detallada.

Puedes ejecutar Windows en VirtualBox para ejecutar py2exe. VBox ofrece un potente cliente de línea de comandos para automatizar tareas, por lo que es algo que probablemente podría integrar en su proceso de desarrollo con facilidad.

He probado py2exe dentro del vino, y funciona. Necesitará instalar python en wine para que funcione, o si solo usa la biblioteca estándar, puede empaquetar py2exe con py2exe desde la máquina de Windows y luego usarlo en wine. Solo tenga en cuenta que necesita la misma versión de las bibliotecas de MS Visual C en el vino que se usó para comstackr Python o las cosas no funcionarán correctamente.