【记录】打包便携版Python

Last updated on January 18, 2025 am

内网电脑是 win7,且不想改变电脑的环境设置,因此打包一个便携版的 Python 来自用。

准备文件

python-3810 下载最后支持 win7 的编译好的文件

  • python-3.8.10-amd64.exe
  • python-3.8.10-embed-amd64.zip

KB2533623 更新

  • 安装 KB3063858
  • 重启 win7 虚拟机,再运行 python-3.8.10-amd64.exe
  • 取消勾选 install launcher, 从 Custmoize installation 继续
  • 只勾选 piptcl/tk,取消其他所有勾选,继续
  • 选一个临时目录A,取消所有勾选,再勾上Precompile standard lib,继续

pip 安装需要的包

  • 打开目录A的 Scripts 文件夹,地址栏输入 cmd
  • pip install httpx lxml -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
  • 安装完成后测试安装的包正常运行

构造便携版

  • Lib/site-packages 移动到目录A内,重命名为 mods
  • Lib/tkinter 移动到 mods 目录内
  • 将 python-3.8.10-embed-amd64.zip 中的 python38.zip 放到目录A内
  • 目录A内创建名为 python38._pth 的文本文件,其内容如下
1
2
3
4
5
DLLs
python38.zip
.
site-packages.zip
mods
  • 移除 Lib、libs、include、Scripts、Tools 等文件夹,
  • 只保留 DLLsmodstcl 这三个文件夹,同时创建 site-packages.zip 文件
  • 进入 mods 文件夹,删除不必须的包,然后将包一个一个移入 site-packages.zip
  • 每移动一个测试安装的包是否正常运行,不能则保留在 mods 文件夹
  • 直到所有包都测试完毕,此时碎片文件数量达到最优

测试便携版

  • 将目录A打包成 python-3.8.10-amd64.zip
  • 将虚拟机回滚到初始快照,安装 KB3063858 更新后重启
  • 解压 python-3.8.10-amd64.zip,测试是否可用

打包好的成品

  • Python-Win7-X64_httpx.zip
  • 该成品可以在重装后只安装了 KB3063858 一个更新的 Win7 系统中无依赖运行
  • 同时可以使用 tkinterhttpxlxml 这三个模块和所有python内置的模块
  • 配合 Chrome-Win7-X64.zip 便携版,可以方便内网抓包写小脚本。

【记录】打包便携版Python
https://hexo.limour.top/portable-python-package
Author
Limour
Posted on
January 17, 2025
Updated on
January 18, 2025
Licensed under