【问题标题】:R CMD build: file DESCRIPTION does not existR CMD 构建:文件说明不存在
【发布时间】:2015-10-31 19:57:06
【问题描述】:

在我正在开发的包中编辑DESCRIPTION文件后,我无法再使用R CMD构建。 R 似乎无法读取它。

这是错误信息:

$ R CMD build ~/projects/mypackage

* checking for file ‘/home/user/projects/mypackage/DESCRIPTION’ ... OK
* preparing ‘mypackage’:
* checking DESCRIPTION meta-information ... OK
* cleaning src
* running ‘cleanup’
Error in .read_description(ldpath) : 
  file 'mypackage/DESCRIPTION' does not exist
Execution halted

相当神秘,不是吗?

该文件当然是在这里,它甚至在第一行被 R 找到。 如您所料,删除DESCRIPTION文件会使该过程在第一次检查时失败:

$ R CMD build ~/projects/mypackage

* checking for file ‘/home/user/projects/mypackage/DESCRIPTION’ ... NO

观察

  • 我尝试从另一个相对路径(mypackage.)运行它,但没有成功。
  • 在 CI 服务器和新克隆的存储库上也失败了。
  • R CMD check ~/projects/mypackageR -e "library(devtools); load_all();" 运行时没有错误(只有几个不相关的警告)
  • 我找到的唯一资源是a similar bug affecting windows builds。我不是这种情况。
  • 如果我将DESCRIPTION中Package字段的内容更改为foo,而不更改任何其他内容,则错误变为Error in .read_description(ldpath) : file 'mypackage/DESCRIPTION' does not exist
  • 有一个清理脚本删除了一堆文件。删除它并不能解决问题。

我正在跑步:

  • R 版本 3.2.2 (2015-08-14) -- “消防安全”
  • 平台:x86_64-pc-linux-gnu(64 位)(Debian Jessie)

【问题讨论】:

  • 找到DESCRIPTION 文件时收到的错误信息是什么?有时错误消息可能会产生误导:我发现我的一个手册页 (function.rd) 失败,因为我认为 ASCI '"' 原来是一个不可接受的 unicode 引号。
  • 问题中所述是Error in .read_description(ldpath) : file 'mypackage/DESCRIPTION' does not exist Execution halted
  • 您是否有清理脚本或以其他方式导致 R 更改工作目录?
  • 可能是这样的。我尝试将文件更改为由create(foo) 生成的文件,我得到Error in .read_description(ldpath) : file 'foo/DESCRIPTION' does not exist Execution halted 。即使文件夹名称未更改(仅说明中的包字段)。这意味着它正在寻找文件......基于它的内容??
  • 删除清理脚本不会改变任何事情。在此之前还有什么可以执行的吗?

标签: r cran


【解决方案1】:

评论我的 .Rprofile 中的 setwd 行,所有错误都消失了,真的救了我的命:

#setwd("~/.R/work")

我被这个错误折磨了几天:

Error in tools:::.read_description(file) :
  file 'DESCRIPTION' does not exist

您可以查看https://csgillespie.github.io/efficientR/set-up.html

例如,在 .Rprofile 中对 setwd() 的看似无辜的调用将破坏开发工具的构建和检查功能。

【讨论】:

    【解决方案2】:

    在我的情况下,这个 .Rbuildignore 会触发错误

    ^sccomp\.Rproj$
    ^\.Rproj\.user$
    ^\.github
    ^README*
    ^dev*
    

    这不会

    ^sccomp\.Rproj$
    ^\.Rproj\.user$
    ^\.github
    ^README*
    ^dev
    

    区别是^dev后面的星号

    如果我可以发表评论,这太令人震惊了,让我浪费了 2 天时间。我想知道如何通知 R 人

    【讨论】:

    • 听起来很意外,但我可以确认这一点。更改 .Rbuildignore 从^_*^_^_*$ 的行删除了错误消息DESCRIPTION' does not exist
    猜你喜欢
    • 2018-09-28
    • 1970-01-01
    • 2018-07-20
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    • 2013-01-06
    相关资源
    最近更新 更多