我应该将哪个 Visual C++ Redistributable 包与 py2exe 一起使用?

which Visual C++ Redistributable package should I be using with py2exe?

我有一个 wxPython GUI,我正在使用 py2exe 将其编译成可执行文件。基于此 tutorial.

我认为我需要提供 Visual C++ 2008 Redistributable 才能在用户的机器上制作我的程序 运行。

我只是想知道 2008 版本 是否真的是我应该使用的版本。我 运行宁 py2exe Windows 10

我应该使用更新的版本吗?我的项目是Python,所以我在任何时候都没有直接使用Visual Studio。

简答

您的用户需要什么 Visual C++ 运行时间取决于您与 py2exe 一起使用的 Python 版本。

  • 如果您使用的是 Python 2.6、Python 2.7、Python 3.0、Python 3.1 或 Python 3.2:您的用户将需要Visual C++ 2008 运行安装时间
  • 如果您使用 Python 3.3 或 Python 3.4:您的用户将需要 Visual C++ 2010 运行安装时间
  • 如果您使用的是 Python 3.5(或更新版本):您的用户将需要 Visual C++ 2015

长答案

您的最终用户需要在他们的机器上安装 Visual C++ 2008 的原因是您要将您的应用程序转换为独立的可执行文件。

当您 运行 py2exe 创建一个独立的应用程序时,它会创建一个捆绑 python27.dll 的包(或其他任何内容,具体取决于您使用的 Python 的版本运行构建包时 ning)。这是允许您拥有独立程序的库,因为它用于 运行 py2exe 与您的应用程序捆绑在一起的所有 Python 字节码。

python?.dll 库需要安装 Visual C++ 2008 的 运行time 库,因为几乎每个版本的 Python 2.x 和 Python 3.x Windows 机器已使用 Visual C++ 2008 编译。

此外,您正在使用 wxPython,它是 C++ 库 wxWidgets 的包装器。 wxWidgets 是使用 Visual C++ 2008 构建的,因此您还需要 运行时间来使用它。