Можете ли вы установить пакет Python через R - Reticulate
Я собираюсь создать интерфейс Python в R с пакетом Reticulate. Чтобы получить доступ к функциям Python в R, необходимо установить соответствующие пакеты Python.
Мне пришло в голову два вопроса:
1) Если вы используете пакет reticulate, нужно ли устанавливать пакет Anaconda? Или достаточно установить только пакеты python?
2) Возможно ли установить пакеты Python в R, аналогично install.packages("r_package")?
У кого-нибудь есть опыт работы с этой темой? Заранее спасибо!
1 ответ
1) Пакет R reticulate
может работать с Python по умолчанию или с Anaconda2
или же Anaconda3
, Если вы хотите, чтобы Anaconda работала с R, вам сначала нужно установить Anaconda. После установки вы вызываете library(reticulate)
и запустить py_config()
или же reticulate::py_discover_config()
, это даст вам список путей и среды, используемой установкой Python. Затем, когда вы знаете путь к Python, вы добавляете такую строку use_python("/opt/miniconda2/bin/python")
, сразу после library(reticulate)
и вы в бизнесе.
2) чтобы установить пакеты Python, чтобы R (или сетчатка) могла их видеть, вы должны установить их как обычные пакеты Python с терминала или консоли; не R. Пример: conda install numpy
установить NumPy или conda install scipy
установить scipy и так далее.
Я просто делаю все это в контейнере Docker rocker/rstudio
, Это должно быть проще в стандартной ОС.
Вот пошаговые инструкции:
Ура!
Я добавлю немного нюансов к предыдущему ответу.
Как сказал @f0nzie, Anaconda - это не пакет, а менеджер пакетов. В идеале вы должны создать среду, используя Anaconda, чтобы помочь с управлением пакетами и контролем версий. Документация по средам conda находится здесь.
Теперь вы можете установить пакеты python в ваш пакет anaconda в R. Это возможно с помощью reticulate::conda_install(envname, packages)
, Документация для conda_install()
можно найти здесь.
Если вам нужна конкретная версия модулей Python, поместите ==
после имени модуля, например, следующее установит определенные версии 3 модулей с помощью pip:
reticulate::conda_install(c("PyMuPDF==1.14.20", "PyPDF2==1.26.0", "reportlab==3.5.23"),
envname = "myenv", pip = TRUE)