上篇我們講到pip的安裝以及普通庫用pip的安裝方法
CodingDog:pyinstaller打包的exe太大?你需要嵌入式python玄學 拓展篇
問題紛沓而至:Tk/Tcl不存在!!
程序猿(媛):嗯···讓(sha diao)用戶用黑乎乎一片命令行工具似乎不太妥當
還是界面來的方(wu)便(nao)!試一下tkinter!

emmm???? 程序猿(媛)的表情是這樣的:
【請不要質疑我哪來的這么多汪星人的表情,我可是代碼汪!】
趕緊去查一下如何安裝Tk&tcl
emmmm這誰看的明白????
看來還得自己上啊~
首先我們要知道tkinter都牽扯到什么 然后對比完整版本的python 把文件都復制出來塞到python-embedded里(有點無腦&暴力 管他呢 有用就行)
第一個牽扯當然就是本模塊啦 復制出來一個tkinter
位置:完整版python路徑\Lib\tkinter
復制到:python-embedded\python37.zip

現在讓我們試一下
import tkinter
[上班去了 回來繼續更]
[回來咯 等我扒兩口飯!就回來繼續寫!]

[一臉平靜]我就知道會報錯
讓我們打開他說的__init__.py看看36行寫了啥
這就是第36行 注釋里寫了什么呢?
import _tkinter # If this fails your Python may not be configured for Tk
什么意思?[還好我是英語專業的 讓我不專業地給你們翻一下:)]
他說呀 如果執行這一行出現了錯誤 那大概就是你的python版本是Tk沒有授權過的
有知友問了:Tk又是什么鬼玩意? :)請出門左轉 擺渡.com
算了。。。記住哈
Tk是祖傳下來的標准框架 tkinter是基於這個框架構建的(非專業解釋勿噴)
找到問題的來源那解決問題不就是立竿見影的事?
-- import _tkinter 就是它有貓餅!
怎么辦? 找啊!
別問從哪找 是哪個!就算你翻遍了完整版python環境 你也只會找到一個跟這玩意有關的:
_tkinter.pyd
又有知友會問:.pyd文件沒見過呀 這是什么玩意?
我想回答:你不需要知道它是什么 他管用就行
但是··· 唉 算了 再偽科普一下吧
.pyd是一種動態的庫 實質上和.dll區別不大 這也就印證了上面對Tk的解釋:“標准框架···”
這些個都不重要 重要的是 需要把它復制出來 扔到python-embedded文件夾里
既然都說到這了 那接下來有兩個.dll文件也是如此 一起復制下來扔進去就好了 這里就不贅述了
這三個文件分別是 _tkinter.pyd(上面提過)
和 tcl86t.dll
以及tk86t.dll
他們仨都可以在完整版python文件夾下的DLLs文件夾里面找到
接下來 Copy & Paste

接下來就是tcl啦 這個很好找嘛
就在完整版的python文件夾下你就會發現一個名為tcl的文件夾 復制粘貼就好

實力diss這個移動速度 弟弟!
現在讓我們再試一下import tkinter!

當tk界面彈出來的時候 我的心啊 真的是只有一個詞可以形容:澎湃!
讓我們放聲吶喊: 還有誰~!~!~!有誰~!~!誰~!
這就完成對python-embedded的全部改造啦