无sudo权限集群环境下,如何在C++14环境使用reticulate/RcppTOML?
解决方案
1. 在C++14环境下使用reticulate的可行方法
reticulate核心功能本身不强制依赖C17,但报错来自它的依赖包RcppTOML的新版本要求C17。你可以安装旧版本的RcppTOML(0.1.7及更早版本仅依赖C++14),再安装reticulate:
- 先安装指定版本的RcppTOML:
install.packages("devtools") devtools::install_version("RcppTOML", version = "0.1.7", repos = "https://cran.r-project.org") - 之后再安装reticulate:
install.packages("reticulate")
2. 用conda重新安装R解决问题的可行性
完全可以。conda安装的R会自带独立的编译环境和配置,不受集群系统R的全局配置限制:
- 创建一个包含R的conda环境(可指定R版本,比如4.2):
conda create -n r_reticulate_env r-base=4.2 - 激活环境:
conda activate r_reticulate_env - 在该环境中直接安装reticulate即可,conda会自动处理C++17编译环境的依赖,无需修改任何系统配置文件。
内容的提问来源于stack exchange,提问作者Jack Keefer
相关产品推荐
相关产品推荐

