最近根据公司业务,做了一个python的工具,在自己的环境下直接执行.py文件就可以运行起来。但是我们后面需要在一个笔记本上使用该工具,为了保证程序拷贝过去直接就可以用,我们就需要对该工具进行打包,将其依赖的python库、第三方库等打包在一起,并生成可执行的exe文件。经过半天的琢磨和处理,成功生成exe打包文件。这里就总结下自己在打包过程。
我主要使用的是pyinstaller工具进行打包的,如下是使用该工具进行打包的步骤以及注意事项。
一. 准备工作
1. 下载pyinstaller,windows下启动cmd命令,输入:
pip install pyinstaller
或者
pip3 install pyinstaller
2. 升级需要更新的第三方库:
pip list --outdated
如上列出需要升级的包,然后依次进行升级:
pip install --upgrade ***
3. 如果你有自己定义的第三方.pyd的库,然后你的.pyd的库又依赖其他dll的库,那么我们需要将这些依赖的库找出来,放到引用目录下,pyinstaller打包的时候会自动将其打包进去。
那么如何知道自己写.pyd的库依赖哪些库呢,这里推荐使用depends工具来检测你的.pyd依赖哪些dll文件,然后将其拷贝到你的工程目录中。
4. 检查你的工程中是否存在与python同名的目录或文件。如果有,则需要修改为其他名字,这里一定要确保你的工程中没有与python官方同名的目录或文件,否则打包会不成功。例如:我之前有一个目录名叫platform,这个名字与官方的python目录名字冲突,导致不能打包成功。
二. 安装
准备好后就可以进行安装了,安装命令如下:
进入到你的程序入口的文件目录下,如:D:\project\maininstaller.py
pyinstaller maininstaller.py
或者
pyinstaller D:\project\maininstaller.py
执行结束后,如果有出错的情况,一般会提示你出错的内容,根据错误情况进行修改,一般是缺少某个模块或者第三方库,这些都可以通过pip install 下载下来。成功后,有两个文件生成,分别是build和dist,build是缓存文件,可以删除掉。dist中就是打包的结果,在该目录下有生成的exe文件,以及exe文件所依赖的库文件 。
三. 测试
这里测试的时候,建议将dist程序包拷贝到另一个电脑上,进行测试。这样可以不依赖你本机的环境,保证测试包的是绿色纯净版本。
测试过程中,最好通过cmd命令行启动你的exe文件,如:
.\maininstaller.exe
这样如果运行不成功,错误日志也会打印出来,可以便于我们进行分析,一般如果运行失败,可能还是缺少某个依赖库,所以这个时候需要在本机上找相关的依赖库。
pyinstaller的一些其他命令,可以使用 pyinstaller -h 来进行查看。