Python3.7原始碼在windows(VS2015)下的編譯和安裝
Python3.7原始碼在windows(VS2015)下的編譯和安裝
下載官方原始碼,使用vs2015(WIN10SDK),最python3.7.0的原始碼進行編譯,編譯出不同的版本(release,debug),並配置python的執行環境(環境變數的配置)。
測試環境介紹和準備
測試環境:
作業系統:windows10
Python版本:3.7.0
VS版本:vs2015社群版(免費)
相關工具下載:
VS版本vs2015社群版(免費)
win10SDK(安裝vs2015是可以選擇,如果沒有安裝則需要獨立安裝)
Python3.7.0 (原始碼和安裝檔案)
1 下載python原始碼
https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
https://pan.baidu.com/s/1xcmlzYyhnXh1euuTjWg2Dg
2 下載並安裝VS2015 社群版(免費,但需要註冊使用者)
http://www.ffmpeg.club/tools_download.html
如果VS2015安裝不成功會提示如下
Cannot locate MSBuild.exe on PATH or as MSBUILD variable
3 解壓python原始碼進入到pcbuild目錄
4 執行build安裝nuget
執行build批處理 會先下載nuget包管理開發工具到 externals目錄中
由於網路狀況不同(測試行動網路可以下載,電信不可以),在部分網路情況下可能無法下載,你可以手動下載後放到原始碼的externals中,或者直接用我提供的已經下載好nuget和依賴的python原始碼包
5 下載安裝python執行環境
如果已經有了就不需要安裝,但要注意後面編譯擴充套件庫的時候容易出現衝突的情況,你要知道是應為系統中還有其他python庫的原因。
6 下載安裝win10SDK
專案配置=》配置屬性=》常規=》目標平臺版本預設是win10
如果你沒有安裝win10sdk 需要將所有專案的目標平臺版本改為你的編譯器支援的版本(比如win8.1)
http://www.ffmpeg.club/tools_download.html
7 下載依賴原始碼
由於網路狀況不同,在部分網路情況下可能無法下載,你可以手動下載後放到原始碼的externals中,或者直接用我提供的已經下載好nuget和依賴的python原始碼包
bzip2-1.0.6
openssl-bin-1.1.0h
sqlite-3.21.0.0
tcltk-8.6.8.0
xz-5.2.2
zips
zlib-1.2.11
下載路徑 www.ffmpeg.club/py
8 編譯python原始碼
資源編輯器
TRACKER : 錯誤 TRK0005: 未能找到: “rc.exe”。系統找不到指定的檔案。
C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x86
set PATH=%PATH%;C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x86
完成編譯,編譯好的python執行檔案和依賴庫都在
F:\Python-3.7.0\PCbuild\win32 目錄下
build -c Release -p x64
build -c Release -p Win32
build -c Debug -p x64
build -c Debug -p Win32
預設32位
9 安裝python
首先我的python原始碼路徑在 F:\Python-3.7.0\
編譯完後,會在F:\Python-3.7.0\ 目錄下面生成一個python.bat檔案,直接執行此檔案即可。
如果要將python.exe配置到path中,在windows的path環境變數中新增: F:\Python-3.7.0\PCbuild\win32 ,同時還需要配置 PYTHONHOME 環境變數,設定為F:\Python-3.7.0\,這個涉及到擴充套件庫的讀取路徑,不設定後面呼叫擴充套件庫可能會出問題。
10 最後我們測試一下
import sys
sys.path
打印出python系統路徑,看下設定是否生效