注:使用的是python 3.6.2,原本用的python 3.9.6,捯饬一晚上版本都不兼容,用不了pyinstaller,随后卸掉装了3.6.2,好使!
若过程中有任何缺少的库,直接使用下面的命令行代码进行安装即可(将pyinstaller替换成需要安装的库名):
pip install pyinstaller
首先,我打包的代码名称是dm_lab1,使用的是jupyter notebook编译代码,因此代码是.ipynb格式的,首先使用下面的命令行语句(console中)将它转换成.py文件:
jupyter nbconvert --to script dm_lab1.ipynb
如果有需要一起打包的资源(图片、音频等),首先将所有资源放在一个文件夹res下,修改.py文件中访问资源的路径(下面会解释原因),修改为sys._MEIPASS开头的路径(这是存储资源的临时文件夹路径),例如我要访问image.bmp,则代码为:
f = open(os.path.join(sys._MEIPASS, 'res/image.bmp'),'rb')
接下来在命令行中使用下面的语句获取spec文件:
pyi-makespec -F dm_lab1.py
在spec文件中的datas[]中填入(‘res’,‘res’),则打包的exe文件可以访问res中所有资源,即变成datas[(‘res’,‘res’)],如下图所示:
修改完成后就可以进行打包了,使用下述命令行语言:
pyinstaller -F dm_lab1.spec
然后exe文件就会存放在dist文件夹中,进入dist文件夹点击即可运行(也可在命令行中使用下述语句运行)
.\dm_lab1.exe