Como mencionaron otros respondedores, la función de compilación cruzada se elimina de PyInstaller desde 1.5
. Aquí, muestre cómo empaquetar un ejecutable de Windows desde secuencias de comandos de Python utilizando PyInstaller en Wine.
Paso 1:Instalar 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 recientes de Python ya incluyen
pip
(se usa para instalarpyinstaller
). Descargue el paquete de instalación de Python desde aquí (por ejemplo,python-2.7.10.msi
) -
Para usuarios de macos, use
brew cask install xquartz wine-stable
.
Paso 2:Instale PyInstaller en Wine
$ cd ~/.wine/drive_c/Python27
$ wine python.exe Scripts/pip.exe install pyinstaller
Successfully installed pyinstaller-3.1.1 pypiwin32-219
Paso 3:Paquete de secuencias de comandos de Python
Paquete de secuencias de comandos 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 obtener una descripción detallada.
¿Miraste PyInstaller?
Parece que las versiones hasta la 1.4 admiten la compilación cruzada (la compatibilidad se eliminó en 1.5+). Consulte esta respuesta para saber cómo hacerlo con PyInstaller 1.5+ en Wine.
La documentación dice:
Agregue soporte para compilación cruzada:PyInstaller ahora puede compilar ejecutables de Windows cuando se ejecuta en Linux. Consulte la documentación para obtener más detalles.
No lo probé yo mismo.
Espero que ayude