如何构建最新的Windows 2 Python?

时间:2015-07-23 09:02:19

标签: python python-2.7

我的意思是所有这些,从所有来源开始,最后是Python网站上的.MSI文件。这包括构建distutils wininst * .exe文件。我找到了各种自学考试,但没有全面的指导。

1 个答案:

答案 0 :(得分:1)

由于没有人回答,我会发布我在这里找到的内容。

这些说明适用于“离线”构建计算机,例如:在设置构建环境之前下载/获取所需的一切。我没有将我的构建机器连接到互联网。说明假设您下载了2.7.10 PSF源版本。这可能在git中变得更容易了。我只是在这里展示32位构建,64位构建需要一些额外的步骤。

预请求数:

  • 带有Service Pack 1(64位)的Microsoft Windows 7 Professional
  • 安装Microsoft Visual Studio Team System 2008开发版,Service Pack 1
  • ActivePython 2.7.8.10 32位。注意:需要32位才能访问msm.merge2.1,这是一个32位的COM对象。
  • 将Nasm.exe 2.11.06放入路径中
  • 安装ActiveState Perl 64位,包括Perl v5.20.2
  • 将环境变量HOST_PYTHON设置为c:\ python27 \ python.exe
  • 将环境变量PYTHON设置为python

要构建文档,请安装以下内容。如果你连接到互联网,你可以让pip下载这些因为它们是Sphinx的依赖。

  • pip install alabaster-0.7.6-py2-none-any.whl
  • 通过源目录中python setup.py install的常规路由安装MarkupSafe-0.23(无轮可用)
  • pip install Jinja2-2.8-py2.py3-none-any.whl
  • pip install Pygments-2.0.2-py2-none-any.whl
  • pip install pytz-2015.4-py2.py3-none-any.whl
  • 安装Babel-2.0,如上所述没有轮子或鸡蛋,所以需要来自源头。
  • pip install --no-deps sphinx_rtd_theme-0.1.8-py2.py3-none-any.whl(由于与Sphinx的循环依赖)
  • pip install Sphinx-1.3.1-py2.py3-none-any.whl

转到tools / buildbot / build.bat并编辑文件,将“Debug”构建目标更改为“Release”。从kill_python exe名称中删除'_d'。

转到“Doc​​”目录。输入'make.bat htmlhelp'来构建帮助。 转到文件Tools / buildbot / buildmsi.bat,并更改help workshop命令行以指向您在上一步中创建的内容,例如:

"%ProgramFiles%\HTML Help Workshop\hhc.exe" Doc\build\htmlhelp\python2710.hhp

编辑工具/ buildbot / external.bat,通过更改如下所示停止构建作为调试版本:

if not exist tcltk\bin\tcl85g.dll (
    @rem all and install need to be separate invocations, otherwise nmakehlp is not found on install
    cd tcl-8.5.15.0\win
    nmake -f makefile.vc INSTALLDIR=..\..\tcltk clean all
    nmake -f makefile.vc INSTALLDIR=..\..\tcltk install
    cd ..\..
)

if not exist tcltk\bin\tk85g.dll (
    cd tk-8.5.15.0\win
    nmake -f makefile.vc INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.15.0 clean
    nmake -f makefile.vc INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.15.0 all
    nmake -f makefile.vc INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.15.0 install
    cd ..\..
)

if not exist tcltk\lib\tix8.4.3\tix84g.dll (
    cd tix-8.4.3.5\win
    nmake -f python.mak DEBUG=0 MACHINE=IX86 TCL_DIR=..\..\tcl-8.5.15.0 TK_DIR=..\..\tk-8.5.15.0 INSTALL_DIR=..\..\tcltk clean
    nmake -f python.mak DEBUG=0 MACHINE=IX86 TCL_DIR=..\..\tcl-8.5.15.0 TK_DIR=..\..\tk-8.5.15.0 INSTALL_DIR=..\..\tcltk all
    nmake -f python.mak DEBUG=0 MACHINE=IX86 TCL_DIR=..\..\tcl-8.5.15.0 TK_DIR=..\..\tk-8.5.15.0 INSTALL_DIR=..\..\tcltk install
    cd ..\..
)

在buildbot / external-common.bat中,只需删除构建Nasm的子句,因为我们已经将其作为二进制文件提供。

我没有记录来自distutils的wininst * .exe存根的构建,但是PSF的存档与ActiveState Python发行版2.7.8.10中的存在完全相同,所以你可以从那里复制。

最后,从根目录运行tools \ buildbot \ buildmsi.bat。这将构建32位安装程序。