簡體   English   中英

為 R package 不在 CRAN 上設置 conda 環境,安裝到錯誤的位置

[英]Set up conda environment for R package not on CRAN, installs to wrong location

My goal is to use this package ( https://github.com/tiagodc/TreeLS ) but it was deprecated from CRAN ( https://cran.r-project.org/web/packages/TreeLS/index.html ). 它需要舊版本的 R 但其依賴項(例如光柵 package)需要 R 3.5 或更高版本。 我考慮了兩種方法。

  1. 使用 R studio 並將全局選項更改為舊版本的 R,但我經常使用許多地理空間包,因為這個 package 有舊版本的包我不想使用所有舊的依賴項。
  2. 在 Mini Conda 3 中創建一個專用於此 package 的虛擬環境。 我選擇這個選項是因為它是自包含的。

這是到目前為止的工作流程。

conda search -c r r
conda create -n newR351 -c conda-forge r-base=3.5.1 -y
conda install -c r rtools -y

成功創建名為 newR351 的 conda 環境,並將 r 工具安裝到 mini conda 3 中的該環境文件夾中。

安裝 R 3.5.1 的 conda 環境的位置

C:\Users\me\Miniconda3\envs\newR351

當我嘗試安裝 devtools 以便可以從 github 遠程安裝 TreeLS 時,我收到一條退出狀態為零的警告。 devtools package 安裝,但它安裝到我的 appdata 文件夾,而不是我的迷你 conda 環境。

conda install -c r devtools -y

The downloaded source packages are in
    'C:\Users\me\AppData\Local\Temp\RtmpYByvp8\downloaded_packages'

如何在我的 conda 環境 newR351 上訪問 devtools? 我需要建立一個 cran 骨架嗎? 當我在這個環境中激活 R 並嘗試加載 devtools 庫時,我得到了這個。

(newR351) C:\Users\me>R
R version 3.5.1 (2018-07-02) -- "Feather Spray"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)

...

>library(devtools)
Error in library(devtools) : there is no package called 'devtools'

為舊版 R package 創建特定環境的最佳實踐是什么? 其他人使用 TreeLS 嗎?

首先, devtools沒有出現,因為 Conda 存儲庫中的 R 包通常以“ r- ”為前綴,因此安裝conda install r-devtools應該可以解決問題。 但是,我不認為 Conda 是這里最好的策略。

在 R 版本 3.6 以下,R 包的 Conda package 覆蓋率相當差。 此外,將需要編譯到 Conda R 環境中的非 Conda 軟件包安裝是一件痛苦的事情,並且根據我的經驗,通常不能開箱即用。 另外, TreeLS需要編譯,而且它的依賴項不是需要編譯的 Conda 包。 我會避免這種情況。

選項1是可行的。 R 允許多個安裝,並且通過操作環境變量(我認為RSTUDIO_WHICH_RR_LIBS是相關的)可以在它們之間切換。

但是,如果這是我的情況,我會啟動一個 docker 容器,可能是rocker/rstudio:3.5並將其用於該項目。 由於底層映像是 Linux,因此編譯需要一段時間,但您可以在此時對其進行版本化,然后始終可以啟動它。 這避免了必須亂搞任何系統設置,並且應該主要是直接安裝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM