Windows Embedded Python3.14.2にTkinterをインストールする

Windows11上でPythonを勉強しています。
職場のPCなので、Pythonインストール版を利用できずzip解凍版(Embedded Python)にて環境構築しました。
このご時世、AIさんにサポートしてもらえれば簡単にプログラム作成できます。
あと付けで、ちゃんとPython勉強してみようと、ブックオフで「Python1年生 第2版 体験してわかる!会話でまなべる!プログラミングのしくみ」を購入。

ところが、いきなり挫折(笑)
プログラム実習に必要な「Tkinter」なるものが未インストール・・・。
飛ばして勉強してもいいのですが、なんとかしたいという気になり勉強そっちのけで導入にトライしてみました。
構築したその過程を備忘録として。

ググれば、Windows Embedded Pythonとtkinterの情報は出ていました。
簡単にできると思っていましたが、見事にハマりました。

いろんなサイトを参照して、まずは以下の事を実施しました。
●既存インストール環境
Embedded Python → document\python

Embedded Pythonと同じバージョンのインストーラー版を、いったん適当なフォルダにインストール。
インストーラー版python → デスクトップ\python3

python3フォルダ内にある以下を、document\pythonの環境にコピー。
「tcl」フォルダ → pythonフォルダ直下にコピー
「tkinter」フォルダ → Lib\tkinterとしてコピー
「DLLs」フォルダから、下記ファイルをpython\DLLsフォルダにコピー(DLLsフォルダ自体無かったので作成してコピーしました)
_tkinter.pyd
tcl86t.dll
tk86t.dll

次に、python314._pthの修正
パス「DLLs」を追加。

「python -m tkinter」を実行したところ、見事に失敗です(笑)
色々トライしましたが、以下エラー例です。

Traceback (most recent call last):
  File "<frozen runpy>", line 189, in _run_module_as_main
  File "<frozen runpy>", line 148, in _get_module_details
  File "<frozen runpy>", line 112, in _get_module_details
  File "D:\Users\simoyan\Documents\python\Lib\site-packages\tkinter\__init__.py", line 38, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
    ^^^^^^^^^^^^^^^
ImportError: DLL load failed while importing _tkinter: 指定されたモジュールが見つかりません。
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import tkinter; print('OK')
    ^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'tkinter'

ダラダラ書いても仕方ないので、解決編。
結果、以下のように修正しました。

「tkinter」フォルダ → Lib\site-packagesフォルダ内にコピー。

python3の「DLLs」フォルダから、さらにDLLファイル「zlib1.dll」をpython\DLLsフォルダにコピー。
_tkinter エラーは 「本体ではなく孫 DLL 不足」で、今回は zlib1.dll が決定的に不足」と、ChatGPTが教えてくれました(ホントかな?)。

python314._pthの再修正。
「Lib」も追記しました。

Pythonに関するパスについても再設定。
以下の3行でテストしました。
私の環境は、Dドライブにマイドキュメントがあるためこんな感じに。
TCL_LIBRARY、TK_LIBRARYについてもChatGPTさんのアドバイス。じつは不要なのかも・・・。

set PATH=d:\Users\%USERNAME%\Documents\python\DLLs;d:\Users\%USERNAME%\Documents\python\Scripts;d:\Users\%USERNAME%\Documents\python;%PATH%
set TCL_LIBRARY=d:\Users\%USERNAME%\Documents\python\tcl\tcl8.6
set TK_LIBRARY=d:\Users\%USERNAME%\Documents\python\tcl\tk8.6

再度テストしたところ、動作成功!
テキストに書いてある勉強が進めるので、ひとまずこれで良しにしました。

PC・Internet

Posted by simoyan