开发环境 win11 / python 12 / pyinstaller 6.1.0
0x01 linux 下直接运行windows镜像行不通
docker hub 上 mcr.microsoft.com 账号下相关的都不行, 即CPU架构是 windwos/amd64 都不行
如果想运行上面的镜像, 只能用docker desktop 选择 switch to windows
0x02 linux 解决方式
linux下可以通过 wine 来模拟出windows环境
那么就通过wine环境pyinstaller来打包, 网上可以找到下面的镜像
- cdrx/pyinstaller-windows 太旧无维护升级不能用, 自己升级重新打包艰巨并失败了
- engineervix/pyinstaller-windows 是 fork 上面的升级了一些, 也没有继续维护, 自己升级重新打包艰巨并失败了
- tobix/pywine 最理想镜像, 一直维护, 并且现在是跟随python最新版
tobix/pywine
docker hub: https://hub.docker.com/r/tobix/pywine
github: https://github.com/webcomics/pywine
github 没有写如何使用, 下面是可以用的使用方式
docker run -it --rm tobix/pywine wine pyinstaller -v
C盘目录是在 /opt/wineprefix/drive_c
后续根据自己需求打包成exe
wine pip 意思是用wine来运行pip, 后面跟的路径还是linux的路径, 比如
docker run -it --rm -v "$(pwd):/opt/src" tobix/pywine sh -c 'cd /opt/src/ && wine pip install -r requirements.txt'
OR
docker run -it --rm -v "$(pwd):/opt/src" tobix/pywine sh -c 'wine pip install -r /opt/src/requirements.txt'
把宿主机的当前目录挂载到容器的/opt/src, 用wine的pip 读取/opt/src/requirements.txt文件进行安装