制作轻量级Python环境指南(包含在Python Embeddable版本中增加Tkinter(Tk)支持)

在做Python 打包工具QPThttps://github.com/QPT-Family/QPT(将Python程序打包为EXE)项目的时候,需要那到一份干净的Python环境,作为Windows Runtime的基础。


由于很多开发者会关注Runtime的大小,所以需要一份轻量级的Python解释器环境。尽管Python官方提供了Embeddable方案,但该方案缺乏Tkinter的环境,那么本文将介绍如何使用Embeddable版环境以及如何在这种环境中增加TKinter的支持。

1. 如何使用Embeddable版本环境

通常在Python官方的下载列表中,会提供exe、zip、tar三种方案。其中exe已经被大家熟知,运行后点几下就能把环境安装好;而zip则是Embeddable版本,可以理解为是专门为嵌入式而做的环境,非常精简(压缩后低于10M);tar则是源码,可以自行编译。

相关链接:https://www.python.org/downloads/windows
在这里插入图片描述

由于Embeddable版本和标准发行版相比,删去了文档、版本说明、Tkinter,并且将site-packages下的库打包为python3.x.zip格式,其他无较大差异,故绝大部分库均可在该版本下使用。

但需要注意的是,由于该版本主打的就是精简,所以我们需要配置以下内容方可像标准版一样使用。

1.1 用户环境变量

环境变量是为了更好在IDE、终端中访问Python,如果对终端很熟悉,加与不加也无所谓。
如果要加的花有个简单方案,打开Powershell,输入以下命令即可完成配置:

【示例】
[Environment]::SetEnvironmentVariable("PATH", $Env:Path + ";【此处填写解压后Embeddable文件的路径】")
[Environment]::SetEnvironmentVariable("PATH", $Env:Path + ";J:/Program/python38_emb")

也可以在系统设置中找到环境变量的PATH字段,里面追加自己的路径就好(想必能去考虑精简Python的开发者,一定知道如何修改环境变量)
在这里插入图片描述

1.2 Python内环境变量

在python38._pth中增加Lib/site-packages一行即可
在这里插入图片描述

完成这些之后,在主流IDE中也能检索到该环境了,终端中也能很方便的调用。

2. Tkinter TK/Tcl适配

增加TK的方法主要为两种:

  1. 编译一个TK
  2. 从标准版中分离出TK(由于安装时可以勾选pip、帮助文档、TK是否安装,故推测不是即时编译,可以分离出编译好的文件)

由于编译的成本比较高(谁没事喜欢编译),所以选择了第二种方式进行解决

2.1 解析标准版安装包

通常Windows下程序安装包有三种非常主流的路线:

  1. SFX(没错,又是它):NSIS、7z SFX Builder、WinRAR、各种支持自解压的压缩软件。(在十几年前,很多TX游戏的安装包就是这个路线,因为压缩率低,可以得到更小的安装包,便于那个光钎宽带不发达的时代)
    在这里插入图片描述

  2. Inno:十几年前软件下载站常用的封装工具,界面好看且不易篡改,避免被其他软件站拿走他用,同时压缩率也不高,很受喜爱。
    在这里插入图片描述

  3. Windows Installer:MSI结尾的安装程序,官方认可,除了微软全家桶外不见得用这个方案的软件多。

好巧不巧,Python的第一层安装包是Microsoft SFX CAB Archive路线,而第二层是MSI,所以干脆用UniExtract来提取好了。

第一层提取后的结果是下图这样的:
在这里插入图片描述
由于这个文件无法直接运行,需要加点环境变量才可以,而我的电脑硬盘坏了,没安装VS的Windows 10 SDK,所以没办法反编译得到它的运行逻辑。
但问题不大,因为用UniExtract可以直接拿到文件,而且根据刚刚的猜想,非即时编译的TK,应该不需要做什么特殊处理就可以使用。
解包后的文件如下:
在这里插入图片描述
这时候我们在刚刚的在python38._pth中增加这四个目录的路径即可。

在这里插入图片描述
在这里插入图片描述
移植成功!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值