一、什么是 Python 便携版(Embedded Python)
核心定义
Python Embedded = 官方提供的'最小运行时 Python'
特点:
- ✅ 不依赖系统 Python
- ✅ 不写注册表
- ✅ 不污染系统
- ❌ 默认 锁死(不能 pip / 不能 site-packages)
📌 ComfyUI、Blender、很多商业软件都用这套
Python 便携版基于官方嵌入式版本构建,无需依赖系统 Python 环境。核心步骤包括解压 embeddable package,修改 _pth 配置文件启用标准库与第三方包目录,并通过 get-pip.py 安装 pip。通过指定 python.exe 路径或配置启动脚本,可实现独立运行,避免污染系统环境,适用于 AI 工具开发及 GUI 程序分发。
Python Embedded = 官方提供的'最小运行时 Python'
特点:
📌 ComfyUI、Blender、很多商业软件都用这套
| 项目 | 普通 Python | Embedded Python |
|---|---|---|
| Lib 目录 | 默认存在 | ❌ 默认没有 |
| pip | 自带 | ❌ 没有 |
| ensurepip | 有 | ❌ 没有 |
| site-packages | 自动 | ❌ 禁用 |
| 目标 | 开发 | 嵌入/便携 |
选择:
Python 3.10.x → Windows → embeddable package (64-bit)
文件名类似:
python-3.10.13-embed-amd64.zip
💡 推荐 Python 3.10,AI / PyTorch / Qt 生态最稳,ComfyUI 也用 3.10
python_embed/
├─ python.exe
├─ python310.dll
├─ python310.zip ← 标准库在这里
├─ python310._pth ← 最重要的控制文件
├─ vcruntime140.dll
└─ ...
✅ 没有 Lib/ 是完全正常的
✅ 标准库在 python310.zip
Embedded Python 默认:
这是通过 python310._pth 控制的。
_pth 是什么?它是:
Python 启动时的'白名单路径表'
📌 这就是它'便携 + 隔离'的核心
在 python_embed 目录下,新建:
python_embed/
├─ Lib/
│ └─ site-packages/
👉 Python 不会帮你建,你要自己建
python310._pth打开:
python_embed\python310._pth
把内容 完全改成下面这样(照抄):
python310.zip . Lib Lib\site-packages import site
| 行 | 作用 |
|---|---|
| python310.zip | 标准库 |
| . | 当前目录 |
| Lib | 启用 Lib |
| Lib\site-packages | 第三方库 |
| import site | 解锁 pip / site-packages |
⚠️ 没有 import site = 一切白搭
Embedded Python 官方移除了:
👉 所以你看到:
No module named ensurepip
是 正常现象
地址:
https://bootstrap.pypa.io/get-pip.py
放到:
python_embed\get-pip.py
cd D:\示例路径\python_embed
.\\python.exe get-pip.py
成功后会安装:
到:
python_embed\Lib\site-packages\
.\\python.exe -m pip --version
输出示例:
pip 24.x from D:\示例路径\python_embed\Lib\site-packages\pip
✅ 说明成功
⚠️ 永远用你的 python.exe
.\\python.exe -m pip install faster-whisper
.\\python.exe -m pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
❌ 不要用:
pip install xxx
D:\示例路径\python_embed\python.exe app\main.py
@echo off
set BASEDIR=%~dp0
set PYTHONHOME=%BASEDIR%python_embed
set PYTHONNOUSERSITE=1
set PATH=%BASEDIR%python_embed;%BASEDIR%python_embed\Scripts;%PATH%
"%BASEDIR%python_embed\python.exe" app\main.py
pause
在 main.py 里:
import sys
print(sys.executable)
必须输出:
D:\示例路径\python_embed\python.exe
因为:
python310.zip📌 这是 Embedded Python 的设计亮点
项目根目录/
├─ python_embed/
│ ├─ python.exe
│ ├─ python310.zip
│ ├─ python310._pth
│ └─ Lib/
│ └─ site-packages/
├─ ffmpeg/
│ └─ ffmpeg.exe
├─ app/
│ ├─ main.py
│ ├─ gui.py
│ └─ asr_engine.py
├─ run.bat
└─ README.md
sys.executable 指向便携 pythonLib/site-packages_pth 中有 import site
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online