0

所以在我们的工作中,我们正在重新编译 python 2.7.3。但是我遇到了一些问题。有些项目无法编译。好的,文档是这样说的。

但是 VS 2008 中的项目文件列表非常混乱。许多项目都以下划线“_”开头。其他人没有。我认为以下划线开头的项目是非核心项目?也许它们是依赖于主要 python DLL 的库项目?

另一个快速的问题。某些项目无法构建,并显示未定义 $(HOST_PYTHON) 的错误消息。那是什么?

4

1 回答 1

1

PCbuild 目录中的readme.txt解释了每个项目的用途(尽管它可能不完整)。这与一些关于 Python 附带的基本知识一起,应该为您提供足够的信息来找出您想要的任何区别。

至于下划线:所有模块(可能除了一些没有任何实际 C 代码的特殊情况)都依赖于 DLL。“规则”是构建模块的项目以其构建的模块命名;用户可见的模块不以下划线开头,由用户可见的 Python 模块包装的模块可以……但是一些最古老的模块并不完全遵循该规则,PCbuild 本身也有一些例外——例如,sqlite3.vcproj构建_sqlite3模块,而不是sqlite3. 因此,除非根据经验,否则您不能依赖它。无论如何,对于您的目的来说,这并不是一个重要的区别。

无论如何,什么是“核心”取决于你的意思,但你肯定至少需要:

  • pythoncore: 其他一切使用的主要 DLL。
  • pythonor pythonw: 两个顶级可执行文件;你需要一个或另一个(除非你打算嵌入 Python 而不是仅仅运行解释器)。*mkbuildinfomkversioninfo: 用于将构建信息烘焙到其他项目中的工具(我相信包括python/ pythonw)。

readme.txt如果您对某个模块有特定的问题,并且无法从主源文件顶部的注释中找出答案,您可以提问。但简而言之,其他项目应包括:

  • pylauncher:构建启动器,用于更轻松地拥有两个 Python 版本,并基于 Unix 风格的 shbang 行在两个版本之间切换。
  • 用 C 实现的各种模块(加号pyexpat,用于构建至少一个其他模块,加号unicodedata,其中可能没有任何 C 代码,但仍必须构建)。
  • 多种测试工具。
  • kill_python辅助工具。

某些项目无法构建,并显示未定义 $(HOST_PYTHON) 的错误消息。那是什么?

一些项目,如sslTkinter模块,有一个部分使用 Python 的构建过程。如果您遵循标准构建过程,python.exe 将在您到达那里时构建并准备好使用。但是您也可以通过设置HOST_PYTHON为预构建的 Python 来“引导”事物。

于 2013-08-16T18:25:35.030 回答