[Risolto] python2-rpy2: ImportError: libR.so: cannot open shared object file..

Segnalazioni di pacchetti utili, richieste di creazione pacchetti e supporto tecnico
Rispondi
pietro
Novello Arciere
Messaggi: 67
Iscritto il: 30 novembre 2007, 9:55

Messaggio da pietro » 21 gennaio 2011, 21:14

Ciao a tutti,

ho installato il pacchetto rpy2 utilizzando il pacchetto su aur:

http://aur.archlinux.org/packages.php?ID=44479

Però quando provo ad importare la libreria ottengo:

Codice: Seleziona tutto

$ ipython
Python 2.7.1 (r271:86832, Jan  6 2011, 11:45:30) 
Type "copyright", "credits" or "license" for more information.

IPython 0.10.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object'. ?object also works, ?? prints more.

In [1]: import rpy2.te
rpy2.tests              rpy2.tests_rpy_classic  

In [1]: import rpy2.tests
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)

/home/pietro/repo/python2-rpy2/<ipython console> in <module>()

/usr/lib/python2.7/site-packages/rpy2/tests.py in <module>()
      2 
----> 3 import rpy2.robjects.tests
      4 import rpy2.rinterface.tests
      5 import rpy2.rlike.tests
      6 

/usr/lib/python2.7/site-packages/rpy2/robjects/__init__.py in <module>()
     12 import array
     13 import itertools
---> 14 import rpy2.rinterface as rinterface
     15 import rpy2.rlike.container as rlc
     16 

/usr/lib/python2.7/site-packages/rpy2/rinterface/__init__.py in <module>()
     73 
     74 
---> 75 from rpy2.rinterface.rinterface import *
     76 
     77 class StrSexpVector(SexpVector):

ImportError: libR.so: cannot open shared object file: No such file or directory
ho cercato in internet ed ho trovato che hanno avuto lo stesso problema sotto debian:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=575913

ho provato a fare la stessa operazione suggerita:
To work around this problem, I had to feed ldconfig with the
/usr/lib64/R/lib path by creating a file R-x86_64.conf in /etc/ld.so.conf.d
Il file /etc/ld.so.conf.d/R-x86_64.conf sotto arch è

Codice: Seleziona tutto

$ cat /etc/ld.so.conf.d/rpy_x86_64.conf 
/usr/lib64/R/lib
e l'ho modificato in:
/usr/lib/R/lib
ma continua a non funzionare...

voi ruscite a capire cosa non gli piace? ho provato ad installare anche con

Codice: Seleziona tutto

pip install rpy2
ma da lo stesso errore...

e stesso errore anche provando ad installare direttamente da sorgente e specificando i percorsi:

Codice: Seleziona tutto

python2 setup.py build --r-home-lib=/usr/lib/R/lib --r-home-modules=/usr/lib/R/modules install
idee?!? qualcun'altro lo usa?

grazie per l'aiuto
:)

Avatar utente
Hilinus
Moderatore
Messaggi: 5649
Iscritto il: 25 ottobre 2008, 19:28
Architettura: x86_64 (64bit)

Messaggio da Hilinus » 21 gennaio 2011, 22:21

Hai visto dove è situata la libreria libR.so? Dovrebbe appartenere al pacchetto "r", no? Dai un:

Codice: Seleziona tutto

pacman -Ql r | grep libR.so
E vedi dove l'ha messa. In seguito, aggiungi il percorso al file in /etc/ld.so.conf.d/, anche se dovrebbee essere già stato fatto dal PKGBUILD...
Q6600 @ 3.2 Ghz + Thermalright Ultra 120 Extreme | 6 GB DDR2 Ocz Gold
Asus P5K | Sapphire HD7850 2GB | E ovviamente... Arch Linux :)

pietro
Novello Arciere
Messaggi: 67
Iscritto il: 30 novembre 2007, 9:55

Messaggio da pietro » 21 gennaio 2011, 22:46

Hilinus ha scritto:Hai visto dove è situata la libreria libR.so? Dovrebbe appartenere al pacchetto "r", no? Dai un:

Codice: Seleziona tutto

pacman -Ql r | grep libR.so
E vedi dove l'ha messa. In seguito, aggiungi il percorso al file in /etc/ld.so.conf.d/, anche se dovrebbee essere già stato fatto dal PKGBUILD...
è nel posto "giusto"...

Codice: Seleziona tutto

$ pacman -Ql r | grep libR.so
r /usr/lib/R/lib/libR.so

pietro
Novello Arciere
Messaggi: 67
Iscritto il: 30 novembre 2007, 9:55

Messaggio da pietro » 22 gennaio 2011, 10:33

Ok, risolto!

dopo aver modificato il file /etc/ld.so.conf.d/rpy_x86_64.conf cambiando /usr/lib64/R/lib -> /usr/lib/R/lib è necessario dire di ricaricare il path delle library con:

Codice: Seleziona tutto

sudo ldconfig
ora funziona :D

Avatar utente
Hilinus
Moderatore
Messaggi: 5649
Iscritto il: 25 ottobre 2008, 19:28
Architettura: x86_64 (64bit)

Messaggio da Hilinus » 22 gennaio 2011, 10:40

A me funziona correttamente. Ma sei su arch i686 o x86_64? Nel primo caso, il file rpy_x86_64.conf non dovrebbe esserci... L'hai creato tu?

EDIT: Ah, ecco. Davo per scontato che avessi dato ldconfig :D
Ultima modifica di Hilinus il 22 gennaio 2011, 10:41, modificato 1 volta in totale.
Q6600 @ 3.2 Ghz + Thermalright Ultra 120 Extreme | 6 GB DDR2 Ocz Gold
Asus P5K | Sapphire HD7850 2GB | E ovviamente... Arch Linux :)

pietro
Novello Arciere
Messaggi: 67
Iscritto il: 30 novembre 2007, 9:55

Messaggio da pietro » 23 gennaio 2011, 9:12

Hilinus ha scritto:A me funziona correttamente. Ma sei su arch i686 o x86_64? Nel primo caso, il file rpy_x86_64.conf non dovrebbe esserci...
sono su x86_64, ho scritto al maintainer con il PKGBUILD corretto e funzionante..
Ultima modifica di pietro il 23 gennaio 2011, 9:13, modificato 1 volta in totale.

Rispondi