pyinstaller打包python脚本和资源

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/songqiu65/article/details/79905936

1.安装pyinstaller

pip install pyinstaller

2.无图标资源打包

pyinstaller -F pyPath/name.py

就可以看到生成了build和dist文件夹,dist文件夹中有你打包的exe,是单个文件(不带-F就是一群散文件)

有图标资源打包1

pyi-makespec pyPath/name.py

它会生成name.spec,这时打开spec文件可以看到下面代码:

a = Analysis(['dmGUI.py'],
             pathex=['C:\\Users\\82641\\Desktop\\digitalMedium3\\dmGUI\\dmGUI'],
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)

然后在datas列表中添加(‘资源路径/资源名’,‘资源打包后相对exe的路径’)
例如:
这里写图片描述
再执行 pyinstaller .\name.spec
就可以在dist文件中看见资源文件:
这里写图片描述

有图标资源打包2
按照无资源打包再把所需要的资源copy过去。

ps:其他命令查看pyinstaller -h

已知问题:numpy、scipy、matplotlib、scikit-learn这几个包来源不同时会出现“ImportError: DLL load failed:找不到指定的模块”,解决办法是pip uninstall modules,再去
http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy
http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
http://www.lfd.uci.edu/~gohlke/pythonlibs/#matplotlib
http://www.lfd.uci.edu/~gohlke/pythonlibs/#scikit-learn
下载对应的包并用pip install modules,在打包就没有问题了。

猜你喜欢

转载自blog.csdn.net/songqiu65/article/details/79905936