直接来结论
Microsoft Visual C++ 2015 Redistributable 安装了X86的版本,和python以及PyQt4的64bit不兼容。
解决方法
卸载Microsoft Visual C++ 2015 Redistributable,然后重新安装64bit的版本(下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=48145)
Details
这个问题折腾了两天,起因主要是因为想把工具从python2切换到python3,但是发现切到python3之后一直报“ImportError: DLL load failed”, 但是别的主机上试了下发现又是可以的。于是在网上查找了下,一般是以下几个原因:
- python3和PyQt4版本不兼容(32bit和64bit的区别)
- 环境路径添加PyQt4 bin文件路径
- python3.dll丢失
所以把python3和PyQt4都重装了下,路径也添加了下,相关dll文件也确认了下,发现始终还是不行。
后来在stackoverflow上面的一个问题(https://stackoverflow.com/questions/2738879/cannot-import-pyqt4-qtgui
),里面提到说打开designer.exe也不行,而且也会具体提示丢失了那个DLL文件。在自己的电脑上试了下,果然和这个描述一样,并且提示的DLL文件也是一样的:msvcp140.dll。
于是上网搜了下,这个DLL文件时包含在Microsoft Visual C++ 2015 Redistributable这个安装包里的,但是在电脑上检查了下发现这个包已经安装了,查看这个包的版本,竟然是X86版本,因为系统/python/PyQt4都是64bit版本,所以导致了不兼容出现了这个问题。
网友评论