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
没有评论:
发表评论