我通过conda conda install -c conda-forge r-broom.mixed安装了conda conda install -c conda-forge r-broom.mixed包,但是它没有导入,并显示了错误消息:
library(broom.mixed)
Error: package or namespace load failed for ‘broom.mixed’:
.onLoad failed in loadNamespace() for 'TMB', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/local/home/hsinhung/anaconda3/envs/r-env/lib/R/library/TMB/libs/TMB.so':
libopenblas.so.0: cannot open shared object file: No such file or directory2022/1/17增加了“希望”可重复的例子:
我通过以下命令在Anaconda中创建了一个干净的R环境:
conda create -n r_env_test r-essentials r-base (跟随Anaconda R env指令)
conda activate r_env_test
conda install -c conda-forge r-broom.mixed (跟随Anaconda broom.mixed指令)
然后输入R控制台,并执行library(broom.mixed)。错误立即弹出:
> library(broom.mixed)
Error: package or namespace load failed for ‘broom.mixed’:
.onLoad failed in loadNamespace() for 'TMB', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/local/home/hsinhung/anaconda3/envs/r_env_test/lib/R/library/TMB/libs/TMB.so':
libopenblas.so.0: cannot open shared object file: No such file or directory
In addition: Warning message:
package ‘broom.mixed’ was built under R version 3.6.3正如@merv所建议的,这里是新测试环境中包版本的输出:
x86_64-conda_cos6-linux-gnu % conda list '(libblas|liblapack|r-base|r-tmb|r-broom.mixed)'
# packages in environment at /home/hsinhung/anaconda3/envs/r_env_test:
#
# Name Version Build Channel
r-base 3.6.1 haffb61f_2
r-base64enc 0.1_3 r36h96ca727_4
r-broom.mixed 0.2.6 r36h6115d3f_0 conda-forge
r-tmb 1.7.16 r36h0357c0b_0 conda-forge
(r_env_test)
(22-01-17 8:16:12) <0> [~]
x86_64-conda_cos6-linux-gnu %有什么建议吗?我怎样才能把这个包裹送到Anaconda?
发布于 2022-01-16 19:30:39
不适当的通道混合
我认为所遇到的问题主要是由默认通道(特别是r通道)和conda-forge通道混合驱动的。这是已知导致共享库中缺少库和缺少符号引用。,因为Anaconda和Conda使用不同的构建堆栈,有时使用不同的菜谱。
在这种情况下,r-broom.mixed依赖于r-tmb,而Conda依赖于libblas和liblapack,但是r通道没有这些依赖关系。
建议:仅限于Conda Forge
通常,我建议想要R环境的Conda用户只使用Conda,并避免使用r通道。这是因为r通道大部分已被我所知道的(例如,没有releases 4版本,并且大多数软件包已经超过一年没有更新)所抛弃。
此外,我不赞成使用r-essentials包。类似于Python的Anaconda发行版(anaconda包),r-essentials包将许多预期将被数据科学家使用的包捆绑在一起,但在我看来,其中一些包看起来很臃肿。让我烦恼的是,除了R之外,它最终还会引入Python,没有人需要将Python与R环境混合在一起。这是由于包含了notebook,如果用户真的希望将R环境作为内核加载,他们只需要r-irkernel (如下面所示)。
总之,只要做以下工作就可以了:
conda create -n foo -c conda-forge r-base r-broom.mixed游行示威
为了验证BLAS实现没有什么区别,我使用MKL和OpenBLAS进行了测试。
在以下设置中,我没有遇到任何问题:
## dedicated jupyter environment
mamba create -n jupyter jupyter nb_conda_kernels
## broom.mixed with MKL backend
mamba create -n broom_mkl r-base=4.1 r-broom.mixed r-irkernel 'blas=*=*mkl*'
## broom.mixed with OpenBLAS backend
mamba create -n broom_openblas r-base=4.1 r-broom.mixed r-irkernel 'blas=*=*openblas*'
## launch jupyter
conda activate jupyter
jupyter notebook随着木星的发射,我可以创建一个新的笔记本电脑的broom_mkl或broom_openblas内核,并运行library(broom.mixed)加载没有任何错误。
这是在osx-64平台上进行的.
https://stackoverflow.com/questions/70727524
复制相似问题