我正在使用python 3.5.2在windows上构建我的应用程序,我在安装了VC ++ Redistributable 2015.24021的情况下构建了python。
而且我不希望客户自己安装redist,所以我认为cx_freeze include_msvcr选项可能就是这样。但是,即使我使用include_msvcr选项,.exe仍然不能在没有redist的Windows上执行。
我可以看到有一个VCRUNTIME140.dll是从我内置的python 3.5.2中复制的,并且在机器上执行它而没有redist抱怨丢失了api-ms-win-crt-stdio-l1-1-0.dll。
我可以在我的构建机器上找到这个.dll文件,所以这里有一些简单的问题。
非常感谢。
有同样的问题 - dll被复制,但仍然在运行时得到VCRUNTIME140.dll missing
错误。
添加选项'add_to_path': True
为我修复了它。
options = {
'build_exe':{
'include_msvcr': True,
'packages':['dde', 'win32ui', 'multiprocessing', 'idna'],
'add_to_path': True
}
}
我在一些构建中注意到了同样的问题;一个构建顺利,另一个没有。
所以经过一些搜索,我发现添加import requests
突然添加pywintypes36.dll
和VCRUNTIME140.dll
到以前错误的构建。
不知道为什么,我不会说添加这个导入是一个明确的解决方案,但一些包如请求似乎缓解了cx_Freeze的依赖检测。