【发布时间】:2014-06-08 04:50:04
【问题描述】:
我有一个控制台类型的 Python3 程序 [.py],当执行 [编译后的 exe 文件] 时,在某些机器 [朋友或亲戚等] 中出现缺少 msvcr100.dll 错误,我需要下载该 dll 文件 [google搜索并下载]并自己复制到system32文件夹。
因此,在谷歌搜索后,我发现 cx_Freeze 在 build_exe 中有一个名为 "include_msvcr" 的选项,这可能有助于我解决这个问题,但文档不符合我的标准,我不能'不明白该怎么做。
这是我的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 错误。
顺便说一句。我使用此 GUI 编译代码,因为只要程序正在运行,我不希望控制台窗口出现 [讨厌它] 谁能告诉我怎么做[也许用一个示例代码]
[cx_Freeze 版本为 4.3.3,Python 版本为 3.5,Windows 7 SP1 x64]
【问题讨论】:
-
我需要自己下载该 dll 文件并将其复制到 system32 文件夹。 这不是你应该这样做的。您必须下载并安装 Visual C++ 运行时:microsoft.com/en-us/download/details.aspx?id=5555
-
好吧@stijn,即使我知道,但我的程序只依赖于那个 dll,当我说它只需要那个文件时,相信我。我下载了,复制到system32文件夹,到现在都没遇到过问题
-
我不是说你的方法不起作用,我是说它不是分发 dll 的正确方法,因为它可能会在将来给其他应用程序或你的应用程序带来问题。正确的方法是安装redist包或将dll放在你的应用程序目录中,但从不在system32中。例如,请参阅msdn.microsoft.com/en-us/library/ms235299.aspx 和 stackoverflow.com/questions/1073509/…
标签: python python-3.x dll windows-7-x64 cx-freeze