«Превышено ограничение скорости API» при попытке установить локальный пакет R с помощью devtools :: install () - PullRequest
6 голосов
/ 18 марта 2019

Начните разработку пакета здесь!

Я пытаюсь превратить некоторый код в локальный R-пакет в первый раз.Я сделал пакет, используя usethis::create_package(), добавил документацию, используя devtools::document().

Теперь, поиграв с ним некоторое время, я столкнулся со следующей ошибкой при попытке установить новейшую версию, используя devtools::install():

Error: HTTP error 403.
  API rate limit exceeded for [my IP]. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)

  Rate limit remaining: 0/60
  Rate limit reset at: 2019-03-18 16:32:05 UTC

  To increase your GitHub API rate limit
  - Use `usethis::browse_github_pat()` to create a Personal Access Token.
  - Use `usethis::edit_r_environ()` and add the token as `GITHUB_PAT`.

Проблема все еще существует, если я использую devtools:install_local("my_folder_name").Что меня действительно смущает, так это то, что я достигаю ограничения скорости GitHub, пытаясь установить пакет, находящийся в локальной папке.

Я допустил ошибку в настройке пакета или использование devtools::install() всегда связано с GitHub API?Могу ли я что-нибудь изменить, чтобы сохранить процесс установки моего пакета локальным и, таким образом, избежать проблемы ограничения скорости?

Редактировать: Мой файл DESCRIPTION относится к другим пакетам:

Depends: 
    R (>= 3.4.3),
    dplyr
Imports:
    RMariaDB,
    dbplyr,
    DBI,
    reshape2,
    RColorBrewer,
    knitr,
    kableExtra,
    scales,
    magrittr,
    DT,
    formattable,
    testthat,
    ggplot2,
    rmarkdown

1 Ответ

1 голос
/ 19 марта 2019

Кажется, что по умолчанию devtools::install() проверяет все пакеты, перечисленные в качестве зависимостей в Depends, Imports и LinkingTo в файле DESCRIPTION (см. Объяснение опции dependencies = NA в справочном руководстве devtools здесь ). Это также верно для remotes::install_local(), на который devtools::install_local() ссылается.

Решением этой проблемы является явное отключение проверки зависимостей пакетов: если вместо этого вы используете devtools::install("my_local_package", dependencies = FALSE), вам больше не нужно подключаться к api.github.com. Делать это имеет смысл, когда вы знаете, что у вас уже установлены необходимые зависимости, как в случае, когда вы упаковываете свой собственный R-пакет.

(Также стоит отметить: параметры по умолчанию в devtools::install() требуют подключения к Интернету для установки любых пакетов, но, установив dependencies = FALSE, также можно установить локальный пакет в автономном режиме!)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...