最近写的翻译软件——transdocx,就是给普通用户而非Python程序员用的,所以它必须是一个开箱即用的软件,普通用户下载下来就能双击运行。
而Python作为一个脚本语言,要运行是必须有解释器的,它不能像C/C++那样编译成二进制。同样,也不能要求普通用户首先安装Python解释器、再安装依赖的包、最后运行transdocx。所以,需要把Python写好的软件打包成一个exe程序,让用户双击既可以使用。打包Python程序的最好的工具可能就是pyinstaller了。
下面我就结合transdocx打包的过程来讲讲pyinstaller的使用,平台是Windows,Linux和macOS类似。
一、用pyinstaller给纯Python代码打包
如果你的软件中只有.py文件,即Python代码文件,不包括图标、图片等资源文件,那么使用pyinstaller打包是非常简单的,往往只需要下面一行命令即可:
pyinstaller -F -w -i icon.ico transdocx.py
第一版本的transdocx就是这样完成的。其中的几个选项:
-F 把整个软件(包括依赖的各种库文件)打包成单一文件;
-w 禁止Windows的命令行窗口。不然双击exe时会打开一个黑乎乎的dos窗口;
-i 生成的exe文件会带有这个图标,有识别度也更好看;
最后的transdocx.py就是翻译软件的入口程序。
运行完上面的命令,会在当前目录下生成一个transdocx.spec文件和两个文件夹build和dist,其中dist里面就是最终生成的exe文件,把这个文件发给普通用户就可以了。当然,你要先自己测试没有问题。
transdocx.spec 是于pyinstaller生成的配置文件,下次打包时,可以不运行上面带参数的命令