『Python』VS2015編譯源碼注意事項

1、2.5.6版本源碼編譯

  • 解壓 Python-2.5.6.tgzhtml

  • 進入 Pcbuild8 文件夾,使用 vs 2013 打開 pybuild.sln (vs 解決方案),進入 vs2015IDE 環境python

  • 進入IDE後以後,在載入解決方案時vs會要求咱們進行升級操做,確認便可,完了會彈出一個升級報告的html文件,通常沒有錯誤
  • 右鍵解決方案’pcbuild’ ⇒ 屬性git

    • 通用屬性github

      單啓動項目 ⇒ 選擇 pythonwindows

    •  配置屬性ui

      • 左上角的【配置】⇒ Debug(Release 可能會報錯)
      • 項目上下文 ⇒ 僅選中 python/pythoncore
  • 首先編譯 make_buildinfo 和 make_versioninfospa

    分別右鍵 make_buildinfo/make_versioninfo ⇒ 僅用於項目 ⇒ 僅從新生成命令行

  • 編譯此解決方案,最終會在開始的 PCbuild8\Win32Debug文件夾下生成 python_d.exe 和 python25_d.dll 文件,可雙擊 python_d.exe,進入 python 命令行環境。編譯中間應該有6個錯誤,解決方式以下,3d

  1. timezone 這個宏再也不被vs2015支持,全部出現的地方都要替換爲_timezone ,剩下的幾個關於時間的編譯錯誤也是如此加個下劃線【_】就行了。錯誤都集中在 pythoncore下的timemodule裏 line:687附近,也有幾個其餘的報錯變量出現,位置也在這附近,處理方法一樣是前面加下劃線。
  2. 項目的配置問題:主要是compiler編譯出的中間文件名和linker使用的文件名不匹配,參考以前的錯誤報告, 須要在配置裏設置pythoncore項目的輸出文件名爲$(PyDllName)_d (右鍵pythoncore ⇒ 屬性)。code

2、3.6.5版本源碼編譯

總體流程同編譯2.x版本,只是編譯時錯誤不同,

編譯解決方案時有可能會出錯:windows sdk version 10.0.15063 was not found,解決方案是根據Fix python 3.6 build failure with VS 2015 and WinSDK!=10.0.15063所說的方法,打開python.props, 將第77行(3.6.5版本此處實際在77行後面一點),

<DefaultWindowsSDKVersion>10.0.15063.0</DefaultWindowsSDKVersion>

更改成,

<DefaultWindowsSDKVersion Condition="$(_RegistryVersion) == '10.0.15063'">10.0.15063.0</DefaultWindowsSDKVersion>

便可。

相關文章
相關標籤/搜索