yumetodoの旅とプログラミングとかの記録

旅や登山の記録やプログラミング関連の話とかフリーソフト紹介とか

python 3.6.9をもっとガチでWindows10でx64 Release buildした

yumetodo.hateblo.jp

これはちょっと本気度が足りなかった。ほんとにビルドしただけで標準ライブラリ動かんし。インストーラーまで生成してこそやろ!

というか主目的のCodeLLDBの動作には至らなかったというだけなんですけどね、はい。

ビルドの準備

改めてビルドの準備をしていく。

.NET 3.5

Windows10では.NET 3.5がデフォルトで無効になっている。

blogs.technet.microsoft.com

に従って有効化する。

Visual Studio

2015以上であればよい。私はVisual Studio 2019を選んだ。C#C++コンパイルが普通にできれば十分だとは思うが、なんせ私の環境にはいろいろ入れているので最小構成がよくわからない。

MSVC v140 - VS2015 C++ ビルドツールとかも必要である可能性はある。

まあなんなら下にVS installerの構成ファイル置いておくので適宜いじって読み込ませてほしい。

gist.github.com

choclatey

必須というわけではないが、ないと説明が面倒くさいので。

chocolatey.org

にあるとおりに入れてほしい。

Mercurial

管理者権限のあるPowershellないしコマンドプロンプト

choco install hg -y
Python

PythonをビルドするにはPythonが必要である。おおっと、鶏と卵の問題というかブートストラップ問題だ。

choco install python3 -y
sphinx

さっそくPythonについてくるpipの出番だ。

pip install Sphinx
Tcl

これがなんなのかわかっていないがとにかく必要らしい。なんとなくIDLEのためじゃないかという気がするが・・・。

ftp://ftp.tcl.tk/pub/tcl/tcl8_6/

からtcl-core8.6.6-src.tar.gzをダウンロードする。

HTML Help Workshop

Visual Studio 2017以降のインストーラーでは入れられないので自分で持ってくる必要がある。Download Htmlhelp.exeをクリック。

docs.microsoft.com

ダウンロードしたら実行してどんどん次に進んでいけば終わる。

Build

Download & 展開

www.python.org

XZ compressed source tarballを落として展開する。

追加のファイル配置

その中にexternalsというディレクトリを作る。そこにtcl-core8.6.6-src.tar.gzを展開する。フォルダー名はtcl-core-8.6.6.0に。これをやらないと、下のTootのようなエラーに見舞われる。

環境変数の設定

VSの開発者コマンドプロンプトを立ち上げる。以下の環境変数を設定する。

rem python2.7もしくは3.4以降の`python.exe`のフルパス。
rem 今回はchocolateyで入れているから`"C:\Python37\python.exe"`
set PYTHON="C:\Python37\python.exe"
rem where sphinx-buildすれば教えてくれるだろう。
set SPHINXBUILD="C:\Python37\Scripts\sphinx-build.exe"
rem 1つ目はhg.exeの場所。where hgすれば教えてくれるだろう
rem もう一つはhhc.exeの場所。デフォルトでは"C:\Program Files (x86)\HTML Help Workshop\hhc.exe"
set PATH="C:\Program Files\Mercurial\hg.exe";"C:\Program Files (x86)\HTML Help Workshop\hhc.exe";%PATH%
ビルド

ビルドにはとても時間がかかる。PCを放置して別の作業をしたいが、PGOビルドをするときにネットワーク接続をしようとしてWindowsファイアウォールから許諾画面が出てくる。ただまあビルドの最終盤で気がついて許可したけど多分間に合ってなかったろうし、やっぱり放置してもいい気がする。

ビルドコマンドは極めてシンプルだ。-oにはビルド成果物を置く場所を指定する。

cd Tools\msi
buildrelease.bat -x64 -o "C:\tmp\python"

最終的に

               Total    Copied   Skipped  Mismatch    FAILED    Extras
    Dirs :         1         0         1         0         0         0
   Files :        71        28        43         0         0         0
   Bytes :   96.69 m   49.61 m   47.08 m         0         0         0
   Times :   0:00:00   0:00:00                       0:00:00   0:00:00


   Speed :           481735111 Bytes/sec.
   Speed :           27565.104 MegaBytes/min.
   Ended : 2019年8月27日 17:26:31

のようなログが出て終わった。

install

先程-oで指定したディレクトリにamd64というディレクトリが作られているはずだ。python-3.6.9-amd64.exeがよくお見かけするpythonインストーラーだ。

これを実行する。