使用 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);
- 使用 R-devel 在 Mac 上不会失败(并且 Linux 由于其他原因失败)
- 它在使用 R-3.6 的 Windows 上也失败了(但在我的 Windows 笔记本电脑上使用 R-3.6.1 时不在本地)
- 但在 win-builder 上运行良好 (https://win-builder.r-project.org/xoPf41nz47Dx/00check.log)
- 在 Travis 上运行良好 (https://travis-ci.org/privefl/minipkg/builds/623573771) and AppVeyor (https://ci.appveyor.com/project/privefl/minipkg/builds/29461832)
出现此错误是因为 foreach 代码需要在子进程中加载包,但在 运行检查 GitHub 操作之前未安装包。
如果您尝试在 Windows 机器上本地 运行 R CMD check
而不先将软件包安装到您的库中,您会看到相同的结果。
我相信它可以在非 Windows 系统上运行而无需安装,因为 R CMD check
在 R CMD 检查期间处理控制包库的环境变量的方式在 Windows 上略有不同其他地方。
有一个使用 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);
- 使用 R-devel 在 Mac 上不会失败(并且 Linux 由于其他原因失败)
- 它在使用 R-3.6 的 Windows 上也失败了(但在我的 Windows 笔记本电脑上使用 R-3.6.1 时不在本地)
- 但在 win-builder 上运行良好 (https://win-builder.r-project.org/xoPf41nz47Dx/00check.log)
- 在 Travis 上运行良好 (https://travis-ci.org/privefl/minipkg/builds/623573771) and AppVeyor (https://ci.appveyor.com/project/privefl/minipkg/builds/29461832)
出现此错误是因为 foreach 代码需要在子进程中加载包,但在 运行检查 GitHub 操作之前未安装包。
如果您尝试在 Windows 机器上本地 运行 R CMD check
而不先将软件包安装到您的库中,您会看到相同的结果。
我相信它可以在非 Windows 系统上运行而无需安装,因为 R CMD check
在 R CMD 检查期间处理控制包库的环境变量的方式在 Windows 上略有不同其他地方。