首页 > 解决方案 > 使用 conda 构建和安装本地或自定义 R 包

问题描述

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

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

对于 github 上的包,这类似:使用“conda”从 github 安装 R 包(除了一些需要标签的版本问题)。

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/'

康达不可能做到这一点吗?还是我犯了一个错误?

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

标签: ranacondacondaconda-build

解决方案


如果您可以将您的 R 包上传到您的私有 github 存储库,那么您可以继续使用 common conda skeleton cran <github_pckg_http_or_ssh>.

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


推荐阅读