通过Pydroid3在Termux中使用OpenAI 1.43库遇ModuleNotFoundError
解决Pydroid3导入OpenAI库时的ModuleNotFoundError问题
问题根源
直接从Termux复制site-packages到Pydroid3共享存储的方式不可行——pydantic_core包含Rust编译的二进制扩展模块,Termux与Pydroid3的Python运行环境(系统库路径、ARM架构编译参数等)存在差异,导致二进制模块无法被Pydroid3识别加载,甚至可能在复制过程中遗漏了关键二进制文件。
可行解决方案
方案1:在Pydroid3中适配安装依赖库
- 打开Pydroid3终端,先安装编译基础工具:
pip install setuptools wheel - 安装与OpenAI 1.43匹配的
pydantic_core版本:pip install pydantic_core==2.18.4 - 再安装指定版本的OpenAI库:
pip install openai==1.43.0
若安装时提示缺少Rust环境,可在Pydroid3的Package Installer中搜索安装rust包,重启后再执行上述命令。
方案2:修复复制后的模块完整性与权限
- 检查共享存储的
pydantic_core目录,确认是否存在_pydantic_core.so(对应平台的二进制文件),若缺失则从Termux的site-packages/pydantic_core目录完整复制所有文件(包括隐藏文件和二进制模块) - 修复文件权限:
chmod -R 755 /sdcard/openai/pydantic_core - 在代码开头手动添加模块路径:
import sys sys.path.append('/sdcard/openai')
方案3:使用纯Python兼容版本(临时应急)
若上述方法均无效,可安装不依赖二进制扩展的旧版OpenAI:
pip install openai<1.0.0
旧版本依赖的pydantic无需编译二进制模块,可直接在Pydroid3中运行。
内容的提问来源于stack exchange,提问作者Yarik
相关产品推荐
相关产品推荐

