You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R中Reticulate调用transformers无法识别已安装的PyTorch如何解决

问题根因说明

你能正常调用torch的方法说明torch包本身已经正确安装,出现该报错的核心原因是2种:

  1. 使用py_install("PyTorch")安装时,pip源下的PyTorch是无实际功能的占位包,干扰了transformers的依赖检测
  2. 安装顺序错误:先安装transformers再安装torch,transformers安装时没有记录torch依赖,运行时检测失败

解决方案

1. 清理并重新安装依赖

统一使用pip安装,避免conda和pip混合安装导致的路径冲突,先卸载旧的错误包再重新安装:

use_virtualenv("r-reticulate", required = TRUE)
# 卸载旧的无效包
py_run_string("import pip; try: pip.main(['uninstall', '-y', 'torch', 'transformers', 'PyTorch']) except: pass")
# 先安装torch,再安装transformers
reticulate::py_install("torch", pip = TRUE)
reticulate::py_install("transformers", pip = TRUE)

2. 调整代码执行顺序

导入时先初始化torch,再导入transformers,确保transformers检测时torch已经完成环境加载;调用预训练模型时添加from_tf = FALSE参数强制加载PyTorch格式权重:

# 先导入并验证torch
torch = reticulate::import('torch')
print(torch$__version__) # 输出版本号即说明torch正常可用

# 再导入transformers
transformer = reticulate::import('transformers')

tokenizer = transformer$AutoTokenizer$from_pretrained("gagan3012/keytotext-small")
# 注意该模型为文本生成模型,使用AutoModelForSeq2SeqLM适配性更好
model = transformer$AutoModelForSeq2SeqLM$from_pretrained("gagan3012/keytotext-small", from_tf = FALSE)

3. 强制跳过依赖检测(兜底方案)

如果上述操作后依然报错,可以手动修改transformers的检测标记,跳过torch校验:

py_run_string("import transformers.utils.import_utils; transformers.utils.import_utils._is_torch_available = lambda: True")

内容的提问来源于stack exchange,提问作者brucezepplin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 22:06:00