因此,在我们的工作中,我们正在重新编译python 2.7.3。但我遇到了一些问题。有些项目没有编译。好的,文档说的是这样的。
但VS 2008中的项目文件列表非常令人困惑。很多项目都以下划线'_'开头。其他人没有。我认为以下划线开头的项目是非核心项目?也许它们是依赖于主python DLL的库项目?
另一个快速问题。某些项目无法构建,并显示未定义$(HOST_PYTHON)的错误消息。那是什么?
答案 0 :(得分:1)
PCbuild目录中的readme.txt解释了每个项目的用途(尽管可能不完整)。这一点,以及有关Python所附带的一些基本知识,应该为您提供足够的信息,以找出您想要的任何区别。
至于下划线:所有模块(除了某些特殊情况,其中没有任何实际的C代码)都依赖于DLL。 “规则”是构建模块的项目以他们构建的模块命名;用户可见模块不以下划线开头,由用户可见的Python模块包装的模块做...但是一些最古老的模块并不完全遵循该规则,并且PCbuild本身也存在一些例外 - 例如, sqlite3.vcproj
构建_sqlite3
模块,而不是sqlite3
。所以,除了经验法则之外,你不能依赖它。无论如何,它对你的目的来说并不是一个重要的区别。
无论如何,什么是“核心”取决于你的意思,但你肯定至少需要:
pythoncore
:其他所有用途的主要DLL。python
或pythonw
:两个顶级可执行文件;你需要一个或另一个(除非你打算嵌入Python而不是只运行解释器)。
* mkbuildinfo
和mkversioninfo
:用于将构建信息烘焙到其他项目中的工具(我相信包括python
/ pythonw
)。如果您对某个模块有特定的疑问,而且无法从readme.txt
或主要源文件顶部的注释中找到它,您可以询问。但简而言之,其他项目应包括:
pylauncher
:构建一个启动程序,用于使两个版本的Python更容易,然后根据Unix风格的shbang行进行切换。pyexpat
)实现的各种模块,用于构建至少一个其他模块,加上unicodedata
,其中可能没有任何C代码,但仍然必须是建)。kill_python
辅助工具。某些项目无法构建,但未定义$(HOST_PYTHON)错误消息。那是什么?
某些项目(如ssl
和Tkinter
模块)具有部分使用Python的构建过程。如果您遵循标准构建过程,将构建python.exe,并在您到达目的地时准备使用。但是你也可以通过将HOST_PYTHON
设置为预先构建的Python来“引导”事物。