【发布时间】:2017-05-02 12:51:16
【问题描述】:
我正在创建自己的包。我在其中使用了很多现有的包,它们可以工作。我对xlsx 包使用相同的过程,但它不起作用。我的DESCRIPTION 文件中有Imports: 中的xlsx。我在各自的 .R 文件中有@import xlsx。我还尝试了 @importFrom write.xlsx 用于具有相同结果的特定功能。我正在使用库 devtools 和 roxygen2 来创建包。我的新包正在构建,但如果我继续Check,则会出现错误:
Installation failed.
See 'C:/Work/Package/MyPackage.Rcheck/00install.out' for details.
* DONE
Status: 1 ERROR
Warning: running command '"C:/R/R-3.3.3/bin/x64/Rcmd.exe" INSTALL -l "C:/Users/Work/Package/MyPackage.Rcheck" --no-html "C:\Users\Work\Package\MyPackage.Rcheck\00_pkg_src\MyPackage"' had status 1
和
checking whether package 'MyPackage' can be installed ... ERROR
Installation failed.
See 'C:/Users/Work/Package/MyPackage.Rcheck/00install.out' for details.
R CMD check results
但是错误中没有.out 文件。整个文件MyPackage.Rcheck 在检查过程中会出现一小段时间,然后消失。所以我无法检查.out 文件并发现错误。
我还尝试在我的代码中使用命令library(xlsx)。在这种情况下,构建和检查过程的问题较少。只有一个警告和一个注释:
WARNING
'library' or 'require' call not declared from: 'xlsx'
'library' or 'require' call to 'xlsx' in package code.
Please use :: or requireNamespace() instead.
See section 'Suggested packages' in the 'Writing R Extensions' manual.
NOTE
MyFunction: no visible global function definition for 'write.xlsx'
但我知道,如果我想将我的代码上传到 CRAN,不应该有任何警告。
我也知道xlsx包有两个依赖:rJava和xlsxjars。如果我将它们放在DESCRIPTION 文件中的Imports: 并在我的.R 文件中使用@import,则会出现同样的问题。我也试过用Depends: 得到同样的结果。
感谢大家的帮助。
【问题讨论】:
-
从 RStudio 构建时,我有同样的经历,无法检查
MyPackage.Rcheck。尝试直接从命令行构建。 -
或者,正如我刚刚发现的,RStudio 中有两个选项:“R CMD 检查成功后清理输出”和“R CMD 检查失败后查看Rcheck 目录”
-
谢谢@Aurèle,它成功了。现在我看到了文件。看来我的问题是
rJava问题。 -
其他建议:转到cran.r-project.org/web/packages/xlsx/index.html,查看
Reverse dependencies部分,选择其中一个包,并查看它们的源代码以了解它们如何处理xlsx,使用qdap例如:github.com/trinker/qdap。您可以简单地阅读源代码,或者克隆他们的 repo 并尝试在本地构建,看看是否可以重现您的问题......或者可能采用更简单的方法,例如 github.com/rOpenGov/psData -
谢谢@Aurèle。在
Reverse dependencies的代码中,他们使用标准@import xlsx。从.out文件看,问题似乎出在我电脑上的Java上。