有一个使用 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 上与其他地方略有不同。