使用 foreach 时无法从同一包中找到函数 (Windows devel)

Could not find function from same package when using foreach (Windows devel)

有一个使用 foreach 进行并行化的函数,它在同一个包中使用另一个函数,这在过去是没问题的。但显然,R-devel 在 Windows??

上不再适用了

我开始发现这个问题出在我的一些软件包上,所以我决定制作一个可重现的小示例。

您可以找到一个小包来重现问题和那里的功能: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);

出现此错误是因为 foreach 代码需要在子进程中加载​​包,但在 运行检查 GitHub 操作之前未安装包。

如果您尝试在 Windows 机器上本地 运行 R CMD check 而不先将软件包安装到您的库中,您会看到相同的结果。

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