前言
这几天一直在研究怎么在linux环境下打包exe给客户使用。大多数人都是直接使用vmware虚拟机进行打包。当然了,这种打包是比较完美的。毕竟就是真实的环境下打包的嘛。
但是有一点不太舒服,那就是还得开虚拟机,太麻烦了,要改动什么又要传文件。
wine解决方案
这是我使用的解决方案,多的不说,下面直接进入教程
下载安装wine
这个就不必多说了吧,官方给大家自己去下载了
https://wiki.winehq.org/Download_zhcn
我是linux mint xfce的系统,所以选择的是ubuntu,大家根据自己的系统去选择。
下载python x86
一定要下载x86的python,另外,如果你模拟的是win7,那么只能使用python3.8及以下的版本。
下载地址
https://registry.npmmirror.com/binary.html?path=python/
下载好x86的python exe后,接下来就开始安装了,记住,一定不要下载成x86_64了。
配置环境
python下载安装后不需要做什么配置,只要做一件事情 ,那就是改pip的源
找到wine目录,一般是在~/.wine下,然后正常的windows目录,相信你也会了。
直接找到下面这个目录,创建pip文件夹和pip.ini
.wine/drive_c/users/xxx/
而源在这边也提供一下
[global]
trusted-host=pypi.douban.com
index-url=http://pypi.douban.com/simple
安装打包工具
保存之后,我们就可以开始安装打包工具了,在这里使用的pyinstaller
先找到python的安装路径,这个你可以自定义的,如果 没有自定义,大概率是在
.wine/drive_c/users/xxxxx/Local Settings/Application Data/Programs/Python/Python38-32/
然后在【Scripts】这个目录下面就有pip了,后面我们要安装东西也非常简单
wine pip.exe install pyinstaller
一定要进到上面说的目录才能使用上面的命令哦。
其它的包相信你也知道怎么去安装了。
安装完,最后就是打包了。
打包exe
先进到你要打包的文件夹,然后调出终端,然后执行下面命令开始打包。
wine ~/.wine/drive_c/users/xxxxx/Local Settings/Application Data/Programs/Python/Python38-32/Scripts/pyinstaller main.py
打包过程跟win操作是一样的,在这里就不多说了。
至此,python在linux下打包exe搞定了。
我自己的一个项目,打包出来的exe可以完美运行,没有任何问题。
python虽好,但是在打包方便还是差了一些,要是能像golang那样改个参数就能直接打包,那才是真的舒服。