cx_freeze Include_msvcr不包装Windows VC2015运行时



我正在用python 3.5.2在Windows上构建我的应用程序,我构建了使用VC 重新分配2015.24021安装的Python。

我不希望客户必须自己安装重新介绍,因此我认为cx_freeze include_msvcr选项可能是必不可少的。但是,即使我使用include_msvcr选项,.exe仍然无法在没有重新列表的Windows上执行。

我可以看到有一个vcruntime140.dll,它是从我的构建python 3.5.2复制的,并在机器上执行它而没有任何重新投诉,因为他们丢失了api-ms-win-ms-win-crt-crt-crt-crt-l1-1-1-0.dll。

我可以在构建计算机上找到此.DLL文件,因此这里有一些快速问题。

  1. 是否期望include_msvcr不会像上述一个一样捆绑依赖的.dll文件?
  2. 是否有解决方法?喜欢将dll添加到include_files?我应该在哪里放置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.dllVCRUNTIME140.dll

不知道为什么,我不会说添加此导入是一个确定的解决方案,但是某些诸如请求之类的软件包似乎可以缓解cx_freeze的依赖性检测。

最新更新