Tkinterのリビルド手順の備忘録メモ
Tkinterを改造/リビルド/インストール(手動)する手順の備忘録メモです。
必要なもの
- Visual C++ 2008 Express Edition
- Python 2.7.2 + setuptools
- Python 2.7.2のソースコード
- Tcl/Tk 8.5.11のソースコード [*1]
[*1]Tcl/Tkを既にインストールしているならば、そのインストール・フォルダの下にあるincludeフォルダのファイルを利用しても良い。
STEP1 作業フォルダを作る
ビルド用の作業フォルダを作ります。ここではworkという名前のフォルダを作りました。このworkの中にさらに_tkinterという名前のフォルダを作ります。ビルドはこの_tkinterのなかで行います。
STEP2ソースコードを入手する
Python-2.7.2とtcl/tk-8.5.11のソースを下記からダウンロードし、それぞれをworkの中に解凍します。
Python-2.7.2: http://python.org/ftp/python/2.7.2/Python-2.7.2.tgz tcl-8.5.11 http://prdownloads.sourceforge.net/tcl/tcl8511-src.zip tk-8.5.11 http://prdownloads.sourceforge.net/tcl/tk8511-src.zip
解凍すると下記のフォルダができます。
work\Python-2.7.2 work\tcl8.5.11 work\tk8.5.111
STEP3 ビルドに必要なファイルを集める
STEP2で得たPython、tcl/tkのそれぞれのフォルダから、_tkinterをビルドする為に必要なファイルをコピーし、_tkinterフォルダに集めます。必要なファイルは下記の2つです。
work\Python-2.7.2\Modules\_tkinter.c work\Python-2.7.2\Modules\tkinter.h
STEP4 ビルドスクリプトを作成する
ビルドを行うための setup.pyとバッチファイルdistutil_vc6.batを作成します。
setup.py
from distutils.core import setup, Extension module1 = Extension( '_tkinter', include_dirs = [ '../tcl8.5.11/generic', '../tk8.5.11/generic', '../tk8.5.11/xlib' ], libraries = ['tcl85', 'tk85'], library_dirs = ['C:/DevelopTools/Python/tcl'], ← Pythonインストールフォルダ sources=[ '_tkinter.c'], ) setup( name = '_tkinter', version = '1.0', author = 'shozo fukuda', ext_modules = [module1], )
distutil_vc6.bat
set DISTUTILS_USE_SDK=1 set MSSDK=1 setup.py bdist_wininst
STEP5 Tkinterの改造
ソースコード_tkinter.cに改造を加える。