簡體   English   中英

如何為Windows構建最新的Python 2?

[英]How do I build the latest Python 2 for Windows?

我的意思是所有這些,從所有來源開始,到Python網站上的.MSI文件結束。 這包括構建distutils wininst * .exe文件。 我發現了各種自述文件,這些書為我提供了一些幫助,但沒有詳盡的指南。

由於沒有人回答,因此我將發布在這里找到的內容。

這些說明適用於“離線”構建機器,例如,在設置構建環境之前下載/獲取所需的一切。 我沒有將構建機器連接到互聯網。 這些說明假定您下載了2.7.10 PSF源代碼發行版。 這可能在git中變得更容易。 我在這里僅顯示32位版本,而64位版本則需要一些額外的步驟。

先決條件:

  • Microsoft Windows 7 Professional Service Pack 1(64位)
  • 安裝Microsoft Visual Studio Team System 2008開發版,Service Pack 1
  • ActivePython 2.7.8.10 32位。 注意:需要為32位才能訪問作為32位COM對象的msm.merge2.1。
  • 將Nasm.exe 2.11.06放在路徑中
  • 安裝ActiveState Perl 64位,包括Perl v5.20.2
  • 將環境變量HOST_PYTHON設置為c:\\ python27 \\ python.exe
  • 將環境變量PYTHON設置為python

有關構建文檔,請安裝以下內容。 如果您已連接到Internet,則可以讓pip下載這些文件,因為它們是Sphinx的依賴項。

  • 點安裝alabaster-0.7.6-py2-none-any.whl
  • 從源目錄通過python setup.py install的常規路線安裝MarkupSafe-0.23(無滾輪)
  • pip安裝Jinja2-2.8-py2.py3-none-any.whl
  • pip安裝Pygments-2.0.2-py2-none-any.whl
  • pip安裝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安裝Sphinx-1.3.1-py2.py3-none-any.whl

轉到tools / buildbot / build.bat並編輯文件,將“ Debug”構建目標更改為“ Release”。 從kill_python exe名稱中刪除“ _d”。

轉到“文檔”目錄。 鍵入“ make.bat htmlhelp”以構建幫助。 轉到文件Tools / buildbot / buildmsi.bat,然后更改幫助研討會命令行以指向您在上一步中創建的內容,例如:

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

編輯Tools / 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位安裝程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM