M1 Mac OSX下R reticulate加载Python包报错(Python3.11.3+R4.3.0)
解决M1 Mac上R4.3.0 reticulate加载Python包的rpytools报错问题
问题重现
Traceback (most recent call last):
File "", line 1, in
File "/Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/library/reticulate/python/rpytools/loader.py", line 119, in _find_and_load_hook
解决方案
确保Python与R架构完全匹配
M1为arm64架构,必须使用arm64版本的Python,禁止混用x86_64版本(比如通过Rosetta运行的Python)。
终端执行以下命令验证架构:python3 -c "import platform; print(platform.machine())"输出需为
arm64,若为x86_64,请重新安装arm64版本Python(推荐从Python官网下载arm64安装包,或用Homebrew执行brew install python)。重新指定reticulate的Python环境
在R会话中强制指定arm64版本的Python路径:library(reticulate) # 替换为你的arm64 Python路径,比如Homebrew安装的路径 use_python("/opt/homebrew/bin/python3", required = TRUE) # 验证配置 py_config()确认
py_config()输出的architecture字段为arm64。重装reticulate并修复文件权限
- 先卸载现有reticulate:
remove.packages("reticulate") - 从源码重新安装(确保R以arm64模式运行):
install.packages("reticulate", type = "source") - 检查并修复rpytools文件权限(终端执行):
chmod 644 /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/library/reticulate/python/rpytools/loader.py
- 先卸载现有reticulate:
清除reticulate缓存并重启会话
在R中执行:reticulate::py_clear_cache()完全关闭R会话后重新打开,再尝试加载Python包。
内容的提问来源于stack exchange,提问作者inferator
相关产品推荐
相关产品推荐

