未提前导入pyqtgraph时matplotlib导入失败问题求助
解决思路
检查VC运行库:kiwisolver的C扩展依赖Visual C运行库,直接导入matplotlib时可能没触发该库的加载,而pyqtgraph提前加载了对应库。手动安装Python 3.11对应的VS2019/2022版VC++运行库,重启环境后再测试。
手动提前加载依赖DLL:在导入matplotlib前用
ctypes强制加载所需DLL,示例代码:import ctypes ctypes.CDLL("vcruntime140.dll") # 系统能自动找到的话直接写文件名,找不到就填完整路径 import matplotlib单独重装kiwisolver:不要只重装matplotlib,单独卸载再安装与matplotlib 3.7.1兼容的kiwisolver版本。执行
pip uninstall kiwisolver -y,再运行pip install kiwisolver==1.4.4,确保安装过程无报错。检查系统PATH:确认系统PATH中包含Python的DLL目录(比如
Python311\DLLs)和kiwisolver的安装目录(Lib\site-packages\kiwisolver),没有的话手动添加,重启终端后重试。用虚拟环境排查冲突:新建虚拟环境,只安装matplotlib 3.7.1,测试直接导入是否报错。如果虚拟环境正常,说明原环境存在包冲突,逐个添加其他包(比如pyqtgraph)排查冲突源。
打包时处理依赖:用shiv打包时,将kiwisolver的DLL明确包含进打包目录,或者在入口脚本中先执行DLL加载逻辑,确保程序运行时能找到所需文件。
内容的提问来源于stack exchange,提问作者Egholm
相关产品推荐
相关产品推荐

