如何将msvcr100.dll链接到cx_freeze程序
我有一个用Python3写的控制台程序 [.py],当我在某些电脑上运行这个程序 [编译后生成的exe文件] 时,会出现缺少 msvcr100.dll
的错误。这种情况下,我需要自己去下载这个dll文件 [在谷歌上搜索并下载],然后把它复制到 system32
文件夹里。
所以,我在网上查资料时发现 cx_Freeze
有一个选项叫 "include_msvcr"
,在 build_exe
中可以用来解决这个问题,但文档写得我看不太懂,没搞明白怎么用。
这是我的 setup_console.py
代码:
import sys
from cx_Freeze import setup, Executable
base=None
if sys.platform=='win32':
base="Win32GUI"
setup( name="Rescue Unit",
version="2.0",
executables=[Executable("resunitv2.py",base)])
我试着在 Executable
的 base
参数后面加上 include_msvcr
这一行,但结果却报了个 include_msvcr not defined
的错误。
顺便说一下,我使用这个图形界面的编译代码是因为我不想在程序运行时出现控制台窗口 [我不喜欢那样]。有没有人能教我怎么做 [最好能给个示例代码]。
[cx_Freeze 版本是 4.3.3,Python 版本是 3.5,Windows 7 SP1 x64]
1 个回答
11
感谢大家的帮助,不过我自己解决了这个问题。include_msvcr
这个选项需要在 setup.py 文件中添加,具体方法如下:
import sys
from cx_Freeze import setup, Executable
build_exe_options = {
"include_msvcr": True #skip error msvcr100.dll missing
}
base=None
if sys.platform=='win32':
base="WIN32GUI"
setup( name = "AppName",
version = "1.0",
description = "blah blah",
options = {"build_exe": build_exe_options},
executables = [Executable("appname.py", base=base)])