使用 conda 构建和安装本地或自定义 R 包

Posted

技术标签:

【中文标题】使用 conda 构建和安装本地或自定义 R 包【英文标题】:Using conda to build and install local or custom R package 【发布时间】:2021-06-15 12:21:31 【问题描述】:

我想将本地 R 包安装到 conda 环境中。该软件包不在 CRAN 或 github 上(也不在任何 conda 频道上)。 对于 CRAN 上的包,这相对简单:

conda skeleton cran <pckg>
conda-build r-<pckg>
conda install --use-local r-<pcgk>

对于 github 上的包,这同样适用:install R package from github using "conda"(除了一些需要标签的版本问题)。

conda skeleton cran <url>/<pcgk>
conda-build r-<pckg>
conda install --use-local r-<pcgk>

但是,我不能让它与本地包一起使用(使用R CMD build 构建包没有问题)。这是我尝试过的:

conda skeleton cran <path>/<pcgk>

连接到 cran,然后(当然)找不到包。

conda skeleton cran --cran-url  <relative_path>/<pckg> <pckg>

抛出错误:

requests.exceptions.MissingSchema: Invalid URL '<relative_path>/<pckg>/src/contrib/': No schema supplied. Perhaps you meant http://<relative_path>/<pckg>/src/contrib/? 
conda skeleton cran <absolute_path>/<pckg> <pckg>

投掷:

File "/home/myuser/.conda/envs/myenv/lib/python3.9/site-packages/conda_build/skeletons/cran.py", line 743, in package_to_inputs_dict
    pkg_name = re.match(r'(.*)_(.*)', pkg_filename).group(1).lower()
AttributeError: 'NoneType' object has no attribute 'group'

最后:

conda skeleton cran --cran-url  <absolute_path>/<pckg> <pckg>

投掷:

 File "/home/myuser/.conda/envs/myenv/lib/python3.9/site-packages/requests/sessions.py", line 742, in get_adapter
    raise InvalidSchema("No connection adapters were found for !r".format(url))
requests.exceptions.InvalidSchema: No connection adapters were found for '<absolute path>/<pckg>/src/contrib/'

这对 conda 来说是不可能的吗?还是我搞错了?

Here有人尝试自己编写本地包的骨架文件,但似乎没有成功。

【问题讨论】:

【参考方案1】:

如果您可以将您的 R 包上传到您的私有 github 存储库,那么您可以继续使用常见的conda skeleton cran &lt;github_pckg_http_or_ssh&gt;

conda 会询问(我认为是 git 内部)您的密码以检索代码。

【讨论】:

以上是关于使用 conda 构建和安装本地或自定义 R 包的主要内容,如果未能解决你的问题,请参考以下文章

从本地 C++ 程序构建 conda 包

CRAN R 包的 conda 构建失败

conda 从本地存档文件构建源

基于订阅的应用程序的 sylius 或奏鸣曲或自定义

安装我的 conda 包后在标准输出上显示自定义消息的最简单方法

如何设置安装了 conda 的 R 以与 RStudio 一起使用?