2021年4月24日星期六

rpy2 and library(forecast) causing libopenssl error

I'm using conda to host a python 3.9 environment in Oracle Linux 8

The error is simply on loading library(financial) inside a python 3.9 conda environment

I can host some functions, but when I go to load forecast library. It complains about shared objects.

os.environ['R_HOME'] = '/mnt/distvol/R/4.0.5/lib64/R/'  import rpy2.robjects as R  from rpy2.robjects import pandas2ri  pandas2ri.activate()    all_data.resample('D').mean()    R.r('''             f <- function(values) {                      #system("which openssl")                        library(snpEnrichment)                      library(arfima)                      library(parallel)                      #dyn.load('/mnt/distvol/miniconda3/envs/py39/lib/libssl.so')                      #dyn.load('/lib64/libldap-2.4.so.2')                                              #dyn.load('*.so')                      #dyn.load('/lib64/libssl.so.1.1')                      #dyn.load('/lib64/libcurl.so.4')                                            #dyn.load('/mnt/distvol/R/4.0.5/lib64/R/library/curl/libs/curl.so')                      #dyn.load('/usr/lib64/libcurl.so')                      #dyn.load('/mnt/distvol/R/4.0.5/lib64/R/library/curl/libs/curl.so')                      #dyn.load('/mnt/distvol/krb5-1.18.2/src/lib/crypto/libk5crypto.so.3')                      #dyn.load('/mnt/distvol/build/lib/libssh.so')                      #dyn.load('/mnt/distvol/ssl/lib/libssl.so')                      #library(curl)                      library(forecast)                                                                dset <- mclapply(1:ncol(values),function(x)                      {                          column = values[,x]                                                                              tryCatch(invisible(capture.output(suppressMessages(suppressWarnings(                          {                            varvefd = arfima(column)                            d = summary(varvefd)$coef[[1]][1]                            return(d)                          }                         )                         ))),                          error=function(e)                            {                              d = 1                              return(d)                            })                                            })                                                dset                }              ''')    r_f = R.globalenv['f']  d=R.conversion.rpy2py((r_f(R.conversion.py2rpy(all_data.resample('D').mean().dropna()))))    print(d)  

error

I'm trying to figure out how to get around this. I've tried manually loading the shared object, but then I get some other undefined symbol

[write to console]: Error: package or namespace load failed for 'forecast' in dyn.load(file, DLLpath = DLLpath, ...):   unable to load shared object '/mnt/distvol/R/4.0.5/lib64/R/library/curl/libs/curl.so':    /lib64/libldap-2.4.so.2: undefined symbol: EVP_md2, version OPENSSL_1_1_0  
https://stackoverflow.com/questions/67248853/rpy2-and-libraryforecast-causing-libopenssl-error April 25, 2021 at 09:05AM

没有评论:

发表评论