cx_freeze include_msvcr没有捆绑Windows VC2015运行时

Eva*_*Chu 6 windows dll cx-freeze python-3.x

我正在使用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文件,所以这里有一些简单的问题.

  1. 是否期望include_msvcr不会像上面提到的那样捆绑依赖的.dll文件?
  2. 有没有解决方法?喜欢将dll添加到include_files?我应该在哪里作为dll的目的地?

非常感谢.

dbJ*_*nes 0

有同样的问题——dll 被复制,但VCRUNTIME140.dll missing在运行时仍然出错。

添加选项'add_to_path': True为我解决了这个问题。

options = {
    'build_exe':{
        'include_msvcr': True,
        'packages':['dde', 'win32ui', 'multiprocessing', 'idna'],
        'add_to_path': True
    }
}
Run Code Online (Sandbox Code Playgroud)