之前和大家分享过,已在 Ubuntu x86 环境下完成 Python3 编译,并成功移植部署至 KaihongOS x86 系统,实现终端内直接独立运行。
今天就整理一下详细实操教程,从前期准备、编译配置,到移植部署、验证测试,主要是参考在github上的开源项目Termony,下载地址:https://github.com/TermonyHQ/Termony。
先和大家明确几个核心前提,避免走弯路:
架构一致:本次移植是 Ubuntu x86 → KaihongOS x86,两者都是 x86 架构,无需交叉编译(交叉编译适用于不同架构,比如 x86 → arm),操作更简单。
系统要求:Ubuntu 建议 20.04 及以上(兼容性更好),KaihongOS x86 系统已正常启动,且支持终端操作。
核心目标:将 Ubuntu 上编译好的 Python3,移植到 KaihongOS 中,实现终端输入 python3 即可直接运行,无需依赖系统自带环境。
在开始操作前,先准备好所需工具和依赖,确保全程顺畅,避免中途报错。
打开 Ubuntu 终端,先安装编译 Python3 所需的依赖(之前踩过坑,缺少依赖会导致编译失败,比如 zlib 库缺失),执行以下命令:
# 更新软件源sudo apt update# 安装核心依赖(一次性装全,避免后续报错)sudo apt install -y zlib1g-dev libssl-dev libffi-dev libreadline-dev libsqlite3-dev libbz2-dev# 安装编译工具sudo apt install -y gcc make
2. 源码准备
从github上下载Termony仓库至主文件夹下
#下载Termonygit clone https://github.com/TermonyHQ/Termony.git
调整Termony目录下的build-linux.sh文件中的以下二个参数,并保存:
# for x86_64, set OHOS_ARCH and OHOS_ABI to x86_64export OHOS_ARCH=x86_64 #为原值为aarch64export OHOS_ABI=x86_64 #原值为arm64-v8a
打开Termony/build-hnp/Makefile,下图红框中删除不想要编译的工具,当时编译时只保留了gettext、bash和python(工具较多,时长会比较长,python有个依赖,需gettext生成,编译gettext报错找不到config.h时,需禁用command-line-tools下的diff命令):


三、核心步骤:Ubuntu 端编译 Python3
进入到Termony目录,运行:
cd Termony./build-linux.sh -b #开始编译
#切换到刚编译好的python3文件下ls #目录下会有这几个文件夹 bin include lib share#执行以下命令,就会成功打开python3命令环境了LD_LIBRARY_PATH=./lib ./bin/python3提示:msvcrt 是 Windows 才有的模块,Linux 上没有这个模块,所以 Python 只是换了个普通的交互模式,你可以直接写代码、运行脚本、用 pip,完全没问题。
分享过程中遇到的几个常见问题,整理出来,帮大家少走弯路:
问题1:Ubuntu 编译时提示“zlib not available”?
解决:重新安装 zlib 开发依赖(sudo apt install zlib1g-dev),然后重新配置、编译。
问题2:KaihongOS 终端输入 python3 提示“command not found”?
解决:检查环境变量配置是否正确,或直接输入完整路径运行。
本次实操完成了 Python3 从 Ubuntu x86 到 KaihongOS x86 的移植,核心是“同架构编译 + 目录移植”,没有复杂的交叉编译操作,新手也能轻松上手;
有兴趣的同学可以编译下整个Termony项目试试移植到kaihongOSx86中来,可能会碰到下载源码失败的问题,可手动下载后放入对应工具文件夹下的download中(没有可自行创建)。
如果大家在操作过程中遇到其他问题,欢迎在评论区留言,一起交流解决。 记得点赞关注,期待后续更多分享~