cx_Freeze generated msi for wxpython script causes ImportError: DLL load failed
cx_Freeze generated msi for wxpython script causes ImportError: DLL load failed
我已经为 wxpython 脚本生成了 msi,但是当我 运行 exe 文件时,我收到以下错误,但它是 运行ning on RAW Python 脚本
错误信息:
from ._core import * ImportError: DLL load failed: The specified procedure could not be found
Image of the full error message
配置:python2.7
查看 this post,您的问题可能是由可执行文件目录中缺少 DLL MSVCP140.dll
和 VCRUNTIME140.dll
引起的。
第一步,在您的系统中找到这两个 DLL(通常在 C:\Windows\System32
下或 Python 目录中的某处),然后在 [=29] 之后手动将它们复制到安装目录中=] msi
安装程序。
如果这解决了问题,您可以通过在 setup.py
脚本中的 setup
调用的 options
kwarg 中添加类似于以下条目的内容来自动化此解决方案:
options = {'build_exe': {'include_files': ['path_to/VCRUNTIME140.dll', 'path_to/MSVCP140.dll']}}
其中 path_to
替换为系统上 DLL 的正确路径(两个 DLL 也可能不同)。
经过这么多小时的调试,我发现,在构建 MSI 文件时,cx_freeze 并未完全复制 wx、idna 和 pycparser 库。
因此,要解决该问题,请在安装 MSI 文件后从 Python Lib 文件夹(C:\Python27\Lib\site-packages 复制这三个库并将其替换为相同的MSI 安装 lib 文件夹中的库。
我已经为 wxpython 脚本生成了 msi,但是当我 运行 exe 文件时,我收到以下错误,但它是 运行ning on RAW Python 脚本
错误信息:
from ._core import * ImportError: DLL load failed: The specified procedure could not be found
Image of the full error message
配置:python2.7
查看 this post,您的问题可能是由可执行文件目录中缺少 DLL MSVCP140.dll
和 VCRUNTIME140.dll
引起的。
第一步,在您的系统中找到这两个 DLL(通常在 C:\Windows\System32
下或 Python 目录中的某处),然后在 [=29] 之后手动将它们复制到安装目录中=] msi
安装程序。
如果这解决了问题,您可以通过在 setup.py
脚本中的 setup
调用的 options
kwarg 中添加类似于以下条目的内容来自动化此解决方案:
options = {'build_exe': {'include_files': ['path_to/VCRUNTIME140.dll', 'path_to/MSVCP140.dll']}}
其中 path_to
替换为系统上 DLL 的正确路径(两个 DLL 也可能不同)。
经过这么多小时的调试,我发现,在构建 MSI 文件时,cx_freeze 并未完全复制 wx、idna 和 pycparser 库。 因此,要解决该问题,请在安装 MSI 文件后从 Python Lib 文件夹(C:\Python27\Lib\site-packages 复制这三个库并将其替换为相同的MSI 安装 lib 文件夹中的库。