cx_Freeze为wxpython脚本生成的msi导致ImportError:DLL加载失败

时间:2018-10-11 09:45:09

标签: python wxpython cx-freeze

我为wxpython脚本生成了msi,但是当我运行exe文件时,出现以下错误,但它在RAW Python脚本上运行

错误消息:

  

从._core导入* ImportError:DLL加载失败:找不到指定的过程

Image of the full error message

配置:python 2.7

2 个答案:

答案 0 :(得分:0)

this post看,您的问题可能是由可执行文件目录中缺少DLL MSVCP140.dllVCRUNTIME140.dll引起的。

第一步,在系统上(通常在C:\Windows\System32下或Python目录中的某个位置)找到这两个DLL,然后在运行msi安装程序后将它们手动复制到安装目录中。

如果这可以解决问题,则可以通过在options脚本的setup调用的setup.py分支中添加类似以下内容的方法来使该解决方案自动化:

options = {'build_exe': {'include_files': ['path_to/VCRUNTIME140.dll', 'path_to/MSVCP140.dll']}}

其中path_to替换为系统上DLL的正确路径(两个DLL也可能不同)。

答案 1 :(得分:0)

经过许多小时的调试,我发现,在构建MSI文件时, cx_freeze 并未完全复制 wx idna pycparser 库。 因此,要解决此问题,请在安装MSI文件后,从Python Lib文件夹( C:\ Python27 \ Lib \ site-packages )复制这三个库,并将其替换为MSI中的Same库安装lib文件夹。