Come menzionato da altri risponditori, la funzione di compilazione incrociata è stata rimossa da PyInstaller dal 1.5
. Qui, mostra come impacchettare un eseguibile Windows da script Python usando PyInstaller sotto wine.
Passaggio 1:installa wine e Python
sudo apt-get install wine
wine msiexec /i python-2.7.10.msi /L*v log.txt
PS:
-
Le versioni più recenti di Python includono già
pip
(viene utilizzato per installarepyinstaller
). Scarica il pacchetto di installazione di Python da qui (ad esempio,python-2.7.10.msi
) -
Per gli utenti macos, usa
brew cask install xquartz wine-stable
.
Passaggio 2:installa PyInstaller su wine
$ cd ~/.wine/drive_c/Python27
$ wine python.exe Scripts/pip.exe install pyinstaller
Successfully installed pyinstaller-3.1.1 pypiwin32-219
Passaggio 3:impacchetta gli script Python
Pacchettizza gli script Python (ad es., 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!')
Il file eseguibile di Windows si trova in dist/
.
$ wine dist/HelloWorld.exe
Hello World!
fixme:msvcrt:__clean_type_info_names_internal (0x1e24e5b8) stub
Fare riferimento qui per la descrizione dettagliata.
Hai dato un'occhiata a PyInstaller?
Sembra che le versioni fino alla 1.4 supportino la compilazione incrociata (il supporto è stato rimosso nella 1.5+). Vedi questa risposta per sapere come farlo con PyInstaller 1.5+ sotto Wine.
La documentazione dice:
Aggiunto il supporto per la compilazione incrociata:PyInstaller è ora in grado di creare eseguibili Windows durante l'esecuzione su Linux. Consulta la documentazione per maggiori dettagli.
Non l'ho provato personalmente.
Spero che sia d'aiuto