PyInstaller打包的App因pyqtgraph色图问题无法运行
PyInstaller打包pyqtgraph热图遇色图文件缺失的解决办法
办法一:修改.spec文件打包色图资源
PyInstaller默认不会自动打包pyqtgraph的色图配置文件,得手动把这些文件加进去:
- 先生成.spec文件(如果还没有的话):执行
pyi-makespec 你的脚本文件名.py - 打开生成的.spec文件,找到
Analysis部分的datas参数,添加色图目录的打包规则:
不知道pyqtgraph安装路径的话,打开Python执行datas=[ # 把这里的路径换成你本地pyqtgraph安装目录下的colors/maps文件夹路径 ("/你的python路径/site-packages/pyqtgraph/colors/maps", "pyqtgraph/colors/maps") ]import pyqtgraph; print(pyqtgraph.__file__),找到路径后对应定位到colors/maps文件夹即可。 - 最后用修改后的.spec重新打包:
pyinstaller 你的脚本文件名.spec
办法二:换用内置色图或自定义色图
不想改.spec的话,直接用不需要依赖外部文件的色图:
- 用内置色图:pyqtgraph自带了像
viridis、plasma这类不需要读取外部文件的色图,直接调用就行:colorMap = pg.colormap.get("viridis") bar = pg.ColorBarItem(interactive=False, values=(0,1), colorMap=colorMap) - 自定义简单色条:如果只需要基础渐变,手动定义颜色映射就行,完全不依赖外部文件:
# 示例:从蓝到青再到红的渐变 color_list = [(0, (0, 0, 255)), (0.5, (0, 255, 255)), (1, (255, 0, 0))] colorMap = pg.LinearColorMap(positions=[c[0] for c in color_list], colors=[c[1] for c in color_list]) bar = pg.ColorBarItem(interactive=False, values=(0,1), colorMap=colorMap)
内容的提问来源于stack exchange,提问作者fishbacp
相关产品推荐
相关产品推荐

