标签: devtools

动态库未在 R 二进制包构建中加载

我正在尝试在 Windows 环境中使用“RStudio”和“devtools”来构建一个包含编译C代码的包。R

\n\n

只有其中一个函数使用文件夹C中的代码src。源码包运行良好。我可以使用所有功能。我能够使用编译 C 代码,devtools::document()并且相应的.dll文件.o也出现在src文件夹中。dev_tools::load_all然后我可以使用or加载代码Ctrl+Shift+L并运行所有函数。

\n\n

但是,当我使用 构建和重新加载包时Ctrl+Shift+B,我无法使用特定的功能。即使保留了文档,该功能也从包中丢失了。我还收到错误消息,提示.dll未加载相应的内容。

\n\n
Error in library.dynam.unload(name, system.file(package = name)) : \n  DLL \xe2\x80\x98mypackage.dll\xe2\x80\x99 was not loaded\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我使用devtools::buildwith时,我得到相同的结果binary=TRUE

\n\n

.dll不过我可以在库中找到该文件Documents\\R\\win-library\\3.0\\mypackage\\libs\\i386\\mypackage.dll。为什么编译代码中的动态库没有被加载?

\n\n

PS:1)devtools::has_devel()给出TRUE\n 2)我被迫使用.C而不是.Call.

\n\n

这是结果R CMD INSTALL

\n\n
* installing to library 'C:/Users/lenovo/Documents/R/win-library/3.0'\n* …
Run Code Online (Sandbox Code Playgroud)

dll r compilation devtools rstudio

5
推荐指数
1
解决办法
2013
查看次数

install_extras 不起作用?

我正在编写一个 R 包并尝试使用编写 R 扩展.install_extras中描述的功能。该文档指出:“要安装 vignettes 目录中的任何其他文件,请包含一个文件 vignettes/.install_extras,该文件将这些文件指定为一行或多行上的类似 Perl 的正则表达式。”

我已经创建了这个文件,它包含以下一行。

myfile.png
Run Code Online (Sandbox Code Playgroud)

png 文件存在于 vignettes 目录中,但是当我使用安装包时devtools::install(),该文件不会复制到安装的 doc/ 文件夹(或开发目录的 inst/doc)。

我已经检查了 Github 上使用此功能的各种软件包(例如Rcppzigguart),据我所知,它应该可以工作。

有任何想法吗?这是 R 3.1.0 的情况。

r devtools

5
推荐指数
1
解决办法
313
查看次数

使用 devtools 为 R 包创建主要帮助页面(索引)

我正在使用 devtools 构建 R 包。所有文档都是使用 roxygen2 构建的。对于这些功能来说,这一切都很好,但是我如何为整个包提供一个帮助页面,其中列出了所有可用的功能。

在其他软件包中,每个帮助页面的底部始终有一个指向索引页面的链接:

dplyr 包的屏幕截图(示例索引链接)

如何使用 devtools 构建/链接此索引页面?

编辑:如果我通过“?functionName”访问帮助页面,还会将以下输出打印到控制台“使用 functionName 的开发文档”。从 devtools 的 github 存储库中,我找到了 提供此输出的函数 dev-help.R 。在其评论中指出,链接不适用于此开发帮助。

请注意,这仅呈现单个文档文件,因此到包内其他文件的链接将不起作用。

那么如何使用普通文档而不是 dev-help 呢?

r devtools package roxygen2

5
推荐指数
1
解决办法
2151
查看次数

roxygen2 是否适用于 data-raw 中的 R 脚本?

我正在使用 RStudio 为我正在进行的数据分析创建一个包。为了将我的原始数据放入包中,我devtools::use_data_raw()按照本文使用。

我有一个脚本load-raw-data.R,可以加载原始数据并将其组装到数据帧中,然后调用devtools::use_data()该数据帧将其添加到包中。根据文章,load-raw-data.R不在 中/data-raw/R我已通过框架向该脚本中的函数添加了文档roxygen2,但是当我构建文档时,.Rd并未构建这些函数的文件。我认为这是因为 roxygen2 只查找/R. 有没有办法告诉也可以roxygen2查看?/data-raw或者我一路上误解了什么?

更新:遵循@phil的建议

@phil - 谢谢 - 我尝试了脚本中的其中一个函数 ( load_data_files) load-raw-data.R(请参阅下面添加到 R/data.R 的文档),但在重建包时出现错误:'load_data_files' is not an exported object from 'namespace:clahrcnwlhf'。我已将该@export标签包含在R/data.R. 关于如何解决这个问题有什么想法吗?

`# This script loads the individual component files of the raw dataset
# and stitches them together, saving the result as …
Run Code Online (Sandbox Code Playgroud)

r devtools rstudio roxygen2

5
推荐指数
0
解决办法
361
查看次数

在我打开 Devtools (F12) 菜单之前,Google Chrome 覆盖不会加载

所以我对网页上的文字进行了一些修改。它被保存为覆盖。当我打开 F12 菜单时它们就可以工作;并在刷新和第一次访问该网站时坚持下去。

但如果 F12 菜单关闭,我的更改将不会显示,直到我打开菜单并刷新页面。

即使 F12 菜单关闭,如何使覆盖显示?

感谢任何帮助。

google-chrome devtools

5
推荐指数
1
解决办法
1190
查看次数

带键盘的 Chrome 开发工具设备未显示

在 Chrome 开发工具中,我似乎无法选择使用键盘选择设备。当点击 Chrome 工具中的“旋转”按钮时,它只是旋转设备模式(横向、垂直)。然而,似乎它必须提供一个选项来选择设备是否有虚拟键盘。

testing android google-chrome devtools ios

5
推荐指数
1
解决办法
2712
查看次数

Bioconductor 软件包未按照软件包描述部分中的 biocViews 规范进行安装

问题:

我正在开发一个 R 包,其中一个依赖包是 multtest。它仅在 Bioconductor 上可用,如下所示。我正在使用devtools来构建包。而且,当我在 R 控制台上运行devtools::install()时,我希望multtest能够像我的其他 CRAN 软件包一样自动安装(如果尚未安装)。我确实知道如何手动安装 Bioconductor 软件包。

研究解决方案:

以下链接建议我应该放置

biocViews:
Run Code Online (Sandbox Code Playgroud)

在包的描述文件中,用于自动安装 Bioconductor 包。

  1. biocViews:在上面的行中(Imports:不确定它放在哪里同样重要?)并且要安装的 Bioconductor 包放在Imports:下面

  2. biocViews:在上面的行中Imports:,要安装的 Bioconductor 包就放在 like 之后biocViews: multtest。这个确切的答案位于 Vivekbhr 回复 Vivian 的未投票线程的末尾,如下所示

我还跟进并检查了依赖 Bioconductor 的软件包的描述文件,如下所示

尝试过的解决方案:

我遵循了这些研究解决方案,将 multest 与biocViews:、 下面biocViews:、之下放在一起Imports:。所有这些都返回了包依赖性或包未找到错误,如下图所示。

  1. 在线生物视图
  2. 分离线生物视图
  3. 导入下的生物视图

然后,我手动重新安装了 multtest,它就可以工作了。但是,我仍然希望拥有Imports哈德利书中的章节中提到的自动安装功能,如下 …

r devtools bioconductor cran package-development

5
推荐指数
1
解决办法
562
查看次数

包反向依赖检查(尤其是在 Windows 上)

我想听听人们如何在 Windows 上进行反向依赖检查。

当使用tools::check_packages_in_dir()Windows 上的 CRAN 存储库策略 [1] 建议的“官方”但实验性功能时,会根据其来源检查反向依赖关系,即所有内容都将被编译。即使对于相对较少的依赖项/建议的包,这也可能需要很长时间。接下来,这不是很方便,因为我在此过程中遇到了很多丢失的包,因此测试出错,我需要安装丢失的包并重新开始......

我曾经使用devtools::revdep_checkwhich 很方便,因为它使用 Windows 二进制文件进行检查,所以没有时间花在编译上,而且它提供了一个很好的处理。然而,它与2.0版本,这一功能不应住里面决定devtools了,但应被移动到专用包(revdepcheck,被用于devtools通过中介包use_this),这是不提供CRAN但并不会在其发展资源库建设. 这种实际上已经不复存在的状态devtools似乎已经持续了一年多(revdepcheck最近才开发了一些新活动)。

(编辑:我还应该提到,devtools在删除反向依赖项检查功能之前使用的版本似乎会产生任意错误,因此这似乎也不是一个选项。)

我没有发现任何其他似乎可行的方法。所以我想知道,如今如何在基于 Windows 的机器上适当有效地检查反向依赖关系?

[1] https://cran.r-project.org/web/packages/policies.html

r devtools package package-development

5
推荐指数
0
解决办法
326
查看次数

R devtools 无法安装 - Ubuntu 20.04 - “pkgload”的包或命名空间加载失败

我非常绝望install.packages("devtools")。但是它总是因这个错误而失败

Error: .onLoad failed in loadNamespace() for 'pkgload', details:
  call: readRDS(nsInfoFilePath)
  error: error reading from connection
Execution halted
ERROR: lazy loading failed for package ‘devtools’
* removing ‘/home/bjoern/R/x86_64-pc-linux-gnu-library/3.6/devtools’
Run Code Online (Sandbox Code Playgroud)

我试图解决这个问题的事情:

  1. 添加dependencies = T参数
  2. 遵循 hadley wickham 在 github 上的建议 -> 更新 rlang 包
  3. 尝试运行install.packages("pkgload")导致几乎完全相同的错误(见下文)
  4. 完全删除 R 并重新安装它
  5. 另外安装软件包以下软件包:
    • r-base-dev
    • r-cran-devtools
    • r-推荐
  6. 更新了所有包 update.packages(ask = FALSE, checkBuilt = TRUE)

install.packages("pkgload") 错误

Error: package or namespace load failed for ‘pkgload’:
 .onLoad failed in loadNamespace() for 'pkgload', details: …
Run Code Online (Sandbox Code Playgroud)

ubuntu r github devtools

5
推荐指数
1
解决办法
2283
查看次数

CRAN 要求用 \donttest{} 替换 \dontrun{} 后 R 包中的问题

我向 CRAN 提交了一个包,他们要求我替换Rd 文件中的\dontrun{}by\donttest{}并重新提交。我\dontrun{}用来包装一些应该抛出错误消息的例子。

更换后\dontrun{}\donttest{}我进行了一些测试,并R CMD check仍然成功,但现在发生了这两个devtools::check()R CMD check --as-cran由于包裹在失败的例子\donttest{}

checking examples with --run-donttest ... ERROR
Run Code Online (Sandbox Code Playgroud)

经过一些浏览,我了解到 R 4.0.0 已更改R CMD check --as-cran为运行\donttest示例。根据R-devel的新闻

“R CMD check --as-cran 现在运行 \donttest 示例(由 example() 运行),而不是指示测试人员这样做。这可以在开发过程中通过将环境变量R_CHECK_DONTTEST_EXAMPLES设置为假值来暂时规避。”

由于我打算将包重新提交给 CRAN,因此设置_R_CHECK_DONTTEST_EXAMPLES_为local对false我没有帮助。

我还在一个问题中发现最近的讨论,devtools其中 Hadley Wickham 指出:

“一般来说,现在如果你不想在 CRAN 上运行测试 \dontrun{} 更有可能工作,但使用 \dontrun{} 可能会导致初始提交失败。”

所以现在我不知道如何继续,因为如果我重新提交包含所需更改的包,我已经知道它会在 …

r devtools cran

5
推荐指数
1
解决办法
511
查看次数