我正在尝试使用Pynsist为我的python应用程序创建一个安装程序,它使用PyQt4。我想捆绑python安装,因此,我必须使用python 3.5,因为pynsist仅支持python 3.5的捆绑。 我使用了一个全新的WinPython 3.5.1.1安装,我安装了所有必需的软件包,并在新安装的Windows 10虚拟盒中测试安装程序。为了构建安装程序,我在Windows 7计算机上使用WinPython 3.5.1.1环境。
但是当我启动已安装的应用程序时,导入QtGui或QtCore时出错:
ImportError: DLL load failed: The specified module could not be found.
我在互联网上发现的这个错误的大多数问题是由python无法找到dll引起的,但是QtGui4.dll文件存在于pkgs \ PyQt4文件夹中,并且还将其复制到应用程序的主文件夹中或者python文件夹没有改变任何东西。
我还尝试使用bundle和python 3.5.1作为最小示例导出pynsist存储库中的示例PyQt4应用程序,但是我得到了相同的错误。
在QtCore.pyd上使用Windows 10环境中的依赖性walker产生: 还有很多" API-MS-WIN * .DLL"依赖项缺失,我只是滚动到它最接近的部分"有趣"。
答案 0 :(得分:1)
缺少的dll文件是msvcp140.dll
。
通过将此文件放入pynsist_pkgs
文件旁边的.cfg
目录,可以将此文件包含在安装中。
要在运行时加载它,必须将pkgs
添加到路径中。这可以使用包含以下内容的extra_preamble
文件来完成:
os.environ['PATH'] = pkgdir + os.pathsep + os.environ.get('PATH', '')