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

使用R reticulate导入sentence_transformers时遇encode参数类型错误

问题:Rgui中通过reticulate导入sentence_transformers失败

环境信息

  • 系统:Windows 11
  • Python版本:3.12.3(直接运行from sentence_transformers import *; model = SentenceTransformer("all-MiniLM-L6-v2")正常)
  • R版本:4.4.2
  • ctype设置:French_Canada.utf8
  • reticulate版本:1.42.0触发错误,降级至1.41.0后出现Python缓冲区刷新警告
  • 仅Rgui环境出错,RStudio和Rterm运行正常

复现代码

library(reticulate)
sentence_transformers <- import("sentence_transformers")

错误信息

Error in py_module_import(module, convert = convert) : 
  RuntimeError: Failed to import transformers.modeling_utils because of the following error (look up to see its traceback):
encode() argument 'encoding' must be str, not int
Run `reticulate::py_last_error()` for details.

添加py_require("sentence-transformers")后错误仍存在。

解决建议

  • 调整Rgui的编码设置:错误提示涉及编码参数类型问题,推测与Rgui的ctype设置相关。可尝试:

    1. 临时修改R的locale设置:
      Sys.setlocale(category = "LC_ALL", locale = "English_United States.utf8")
      library(reticulate)
      sentence_transformers <- import("sentence_transformers")
      
    2. 永久修改Rgui启动参数:右键Rgui快捷方式,在目标栏末尾添加 --encoding=utf-8,重启Rgui后重试。
  • 明确指定Python环境:强制reticulate使用正常运行的Python路径,替换为你的实际Python安装路径:

    library(reticulate)
    use_python("C:/Users/YourName/AppData/Local/Programs/Python/Python312/python.exe", required = TRUE)
    sentence_transformers <- import("sentence_transformers")
    
  • 清理reticulate缓存:

    reticulate::py_clean_cache()
    

    执行后完全关闭Rgui,重新打开再尝试导入。

  • 手动设置PYTHONPATH:指定sentence_transformers所在的site-packages路径:

    Sys.setenv(PYTHONPATH = "C:/Users/YourName/AppData/Local/Programs/Python/Python312/Lib/site-packages")
    library(reticulate)
    sentence_transformers <- import("sentence_transformers")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 09:21:04