欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

pyinstaller打包python脚本和资源

程序员文章站 2022-03-30 22:57:34
...

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打包python脚本和资源
再执行 pyinstaller .\name.spec
就可以在dist文件中看见资源文件:
pyinstaller打包python脚本和资源

有图标资源打包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,在打包就没有问题了。

相关标签: python exe