pyinstaller下载_pyinstaller打包的exe太大?你需要嵌入式python玄学 探索篇

76547e6d4bf9cfae290f5140180aca60.png

[心情烦躁 手残把上一篇文章删除了 又得他喵的重写]

上篇我们讲到pip的安装以及普通库用pip的安装方法

CodingDog:pyinstaller打包的exe太大?你需要嵌入式python玄学 拓展篇​zhuanlan.zhihu.com
81e78ee53f20bd4991f427752715e90b.png

2020-1-9 补充:以下操作完成以后会对pip带来影响 操作完成后将无法使用pip 请将所有需要的库pip完成以后再进行下述操作 并且提前做好备份 以防不测

2020-3-17补充:评论区有只有遇到了

ImportError: DLL load failed: %1 不是有效的 Win32 应用程序

这个问题 我想说 还记得我们一开始为了兼容 选择的是32位的embedded python么?如果给一个32位的python-embed硬塞64位的tk/tcl当然是不行的 所以:

1.你要从32位的完整版python环境里复制tk/tcl

2.放弃兼容性 一开始就选择下载64位的python-embed

问题纷沓而至:Tk/Tcl不存在!!

程序猿(媛):嗯···让(sha diao)用户用黑乎乎一片命令行工具似乎不太妥当

还是界面来的方(wu)便(nao)!试一下tkinter!

73d1d226a0d8cf005e2bf8919b6864fd.gif

emmm???? 程序猿(媛)的表情是这样的:

e9a177dc46f8d7519f538f2acf4b5eb4.png

【请不要质疑我哪来的这么多汪星人的表情,我可是代码汪!】

赶紧去查一下如何安装Tk&tcl

209c544eb9d90e76c5c589a50669b9c4.png

d515bee0d318d96276bfb086dce943d9.png

emmmm这谁看的明白????

看来还得自己上啊~

首先我们要知道tkinter都牵扯到什么 然后对比完整版本的python 把文件都复制出来塞到python-embedded里(有点无脑&暴力 管他呢 有用就行)

第一个牵扯当然就是本模块啦 复制出来一个tkinter

位置:完整版python路径Libtkinter

复制到:python-embeddedpython37.zip

6bca9f12a694cac58eae9324273be711.gif

现在让我们试一下

import tkinter

[上班去了 回来继续更]

[回来咯 等我扒两口饭!就回来继续写!]

e7784c289051a79aa8d185b0cbfd7866.gif

[一脸平静]我就知道会报错

让我们打开他说的__init__.py看看36行写了啥

68c525d611aeb5c6a7dbc5e50ea27aed.png

这就是第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

2ee6c504f471db98583af8e3a092bbd7.gif

接下来就是tcl啦 这个很好找嘛

就在完整版的python文件夹下你就会发现一个名为tcl的文件夹 复制粘贴就好

4a7d29e2f58e23098167817c1e712dc9.gif

实力diss这个移动速度 弟弟!

现在让我们再试一下import tkinter!

51d3ee9cd77d9f2ec35a8e2f2515ca3c.gif

当tk界面弹出来的时候 我的心啊 真的是只有一个词可以形容:澎湃!

让我们放声呐喊: 还有谁~!~!~!有谁~!~!谁~!

这就完成对python-embedded的全部改造啦


让我们回顾一下:

第一篇我们diss了pyinstaller给出了一些解决方法

第二篇我们笼统地介绍了python-embedded

第三篇我们给python-embedded安装了pip以及其他模块

这一篇我们成功安装了Tk/tcl框架 使得tkinter得以复活

下一篇鸽几天再写吧 估计看到这的都应该是“秃头大佬”了。。。

下篇我们写点什么呢?

大概是关于gcc和python-embedded吧。。。

谢谢各位给我点赞收藏并且关注我的知友~爱你们~

好了 打游戏去了【溜.gif】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值