r语言 - 使用 foreach 时找不到来自同一包的功能(Windows 开发)



有一个使用 foreach 进行并行化的函数,而在同一包中使用另一个函数过去很好。但显然,它不再是 Windows 上的 R devel 了??

我开始看到这个问题是我的一些软件包,所以我决定做一个小的可重现的例子。

你可以找到一个小包来重现问题和那里的功能:https://github.com/privefl/minipkg/blob/master/R/test-parallel.R。

您可以在此处看到失败的检查:https://github.com/privefl/minipkg/commit/973b2048d43a2c75fcee088f8182776f9cd1f95d/checks?check_suite_id=343796248#step:9:151。

知道它来自哪里吗?这是意料之中的吗?要更改什么才能使其再次工作?


编辑: 我添加了更多构建(见 https://github.com/privefl/minipkg/runs/339575258(;

  • 它在带有R-devel的Mac上不会失败(Linux由于其他原因而失败(
  • 它在装有R-3.6的Windows上
  • 也失败(但在装有R-3.6.1的Windows笔记本电脑上不会本地失败(
  • 但在双赢建设者 (https://win-builder.r-project.org/xoPf41nz47Dx/00check.log( 上工作正常
  • 在特拉维斯(https://travis-ci.org/privefl/minipkg/builds/623573771(和AppVeyor(https://ci.appveyor.com/project/privefl/minipkg/builds/29461832(上运行良好

发生此错误的原因是 foreach 代码需要在子进程中加载包,但在对 GitHub 操作运行检查之前未安装包。

如果您尝试在 Windows 计算机上本地运行R CMD check而不先将包安装到库中,则可以看到相同的结果。

我相信它无需安装即可在非 Windows 系统上工作,因为R CMD check在 R CMD 检查期间处理控制包库的环境变量的方式在 Windows 上与其他地方略有不同。

最新更新