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

搭建R包开发环境及同时加载CRAN版与本地开发版对比测试方法

同时加载CRAN版与本地开发版R包的实用方法

两种可行方案

方案一:不改包名,通过临时环境调用(快速测试首选)

不用修改任何包代码,就能同时对比两个版本的函数:

  • 先加载CRAN正式版:library(package)
  • 把本地开发版的路径存为变量,比如dev_pkg_path <- "~/你的本地包目录路径"
  • 用devtools::load_all()把开发版加载到临时环境,之后分别调用两个版本的函数:
    # 加载CRAN版
    library(package)
    # 加载本地开发版到临时环境
    dev_env <- devtools::load_all(dev_pkg_path, export_all = FALSE)
    # 调用CRAN版函数
    package::your_test_function()
    # 调用开发版函数
    dev_env$your_test_function()
    

这种方式不会污染全局命名空间,测试完关闭会话就清空了,很安全。

方案二:修改本地包名,实现独立加载(符合你要的library(packageDev)需求)

如果一定要用独立的包名加载开发版,按以下步骤操作:

  1. 打开本地开发版包根目录下的DESCRIPTION文件,把Package:字段的值改成packageDev,顺便把Title、Description里的包名描述改一下(可选,但更规范)
  2. 在本地安装修改后的开发版:devtools::install("~/你的本地包目录路径")
  3. 现在就能同时加载两个版本:
# 加载CRAN正式版
library(package)
# 加载本地开发版
library(packageDev)
# 分别调用对比
package::your_test_function()
packageDev::your_test_function()
  • 注意:每次修改开发版代码后,重新执行devtools::install()更新本地的packageDev即可,这个修改后的版本只会在你本地存在,只要不把修改后的DESCRIPTION推送到GitHub,就不会公开。

小提醒

  • 尽量避免在同一个会话中反复加载卸载两个版本,容易出现命名空间冲突,实在要切换就重启R会话
  • 开发版的依赖包可以用devtools::install_deps()快速安装

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 06:27:34