Apple Silicon(M1)环境下导入_psutil_osx失败求助(已装psutil)
解决Apple Silicon(M1)上
_psutil_osx模块找不到的问题 核心说明
_psutil_osx是psutil的私有底层依赖模块,官方不推荐直接导入。如果业务场景确实需要调用该模块,可按以下步骤排查修复:
确认Python环境架构
M1设备的Python环境分原生arm64和转译x86_64两种,psutil的二进制模块与架构强绑定。执行命令查看当前Python架构:python3 -c "import platform; print(platform.machine())"若输出为
x86_64,建议切换到原生arm64环境(比如Homebrew安装的Python),转译环境容易出现二进制模块兼容问题。从源码重新编译安装psutil
预编译的psutil包可能适配性不足,手动编译可解决架构兼容问题:- 先卸载现有psutil:
pip uninstall -y psutil - 确保安装Xcode命令行工具(编译依赖):
xcode-select --install - 从源码指定版本安装:
pip install --no-binary :all: psutil==5.9.5
- 先卸载现有psutil:
验证模块存在性
查看psutil安装目录下是否存在_psutil_osx相关文件:python3 -c "import psutil; import os; print(os.path.join(os.path.dirname(psutil.__file__), '_psutil_osx.so'))"如果路径不存在,说明编译安装失败,检查pip安装过程中的报错信息,针对性解决依赖缺失问题。
优先使用psutil公开API
除非有特殊需求,否则建议使用import psutil调用其公开接口,而非直接导入私有底层模块,这能避免版本兼容问题。
内容的提问来源于stack exchange,提问作者CrispyRice
相关产品推荐
相关产品推荐

