下载这个脚本并运行,然后再用 pip install langchain 安装就行了。
https://gitcode.com/hu60cn/ohos-script/blob/master/ohos-fix-pip-rust-install.sh
注意:修复只会部署到目前正在使用的venv里,切换venv需要重新部署。
在脚本的注释里可见:
# OpenHarmony pip "rust 源码构建失败" 一键修复脚本(部署 / 卸载)
#
# 背景:
# OpenHarmony 内核禁止直接执行 /lib/ld-musl-aarch64.so.1 (EACCES)。
# 而 setuptools/packaging 在 bdist_wheel.get_tag() 中会通过
# packaging._musllinux._get_musl_version() 直接 spawn 该 loader 探测 musl
# 版本, 导致任何"非纯 Python"包(pydantic-core / maturin 等 rust 扩展)的
# 源码 wheel 构建失败:
# error: [Errno 13] Permission denied: '/lib/ld-musl-aarch64.so.1'
#
# 修复原理:
# 在解释器启动时(经 site-packages 中的 .pth)包装 subprocess.run:
# 当命令恰好是 /lib/ld-musl-aarch64.so.1 时, 直接返回伪造的 musl 版本输出
# (格式与真实 loader 一致), 其余调用原样转发。纯标准库, 无副作用。
#
# 用法:
# ./ohos-script/ohos-fix-pip-rust-install.sh # 部署修复(默认)
# ./ohos-script/ohos-fix-pip-rust-install.sh --install # 同上
# ./ohos-script/ohos-fix-pip-rust-install.sh --restore # 卸载修复
# ./ohos-script/ohos-fix-pip-rust-install.sh --status # 查看部署状态
# ./ohos-script/ohos-fix-pip-rust-install.sh --help # 帮助
#
# 环境变量:
# PYTHON 指定要部署到的 python 解释器(默认自动探测 python3 / python)
#
# 部署产物(写入目标 python 的 site-packages, 均为新增文件, 不改动现有文件):
# ohos_musl_fix.pth 一行: import _ohos_musl_fix
# _ohos_musl_fix.py 补丁实现