[AniMov] almost there with OpenSuSE 11.3 , R, QGIS and Homerange plugin

Joona Lehtomäki joona.lehtomaki at cs.helsinki.fi
Thu Nov 18 13:32:24 CET 2010


Hi Gian Paolo,

I've ran into this problem a couple of times with Rpy2 and although I 
don't know all the techical details, here's what I think and what solved 
the problem for me on OpenSuSE 11.3 64-bit.

libRlapack.so shipping with R-base RPM for OpenSuSE 11.3 (and at least 
11.2 before that) seems to be built with incompatible version of 
libgfortran. I managed to find the details once, but didn't find them 
again, sorry.

I got it working on OpenSuSE 11.3 (64 bit), but this requires building 
R, Rpy2 and Rkward yourself. You can try the following:

1. build R (2.12.0) from sources with --prefix=/usr and --enable-R-shlib 
and flags

2. try "from rpy2 import robjects". If you get an import error with 
"libR.so not found", add a file R-x86_64.conf into /etc/ld.so.conf with 
a single line:
	
/usr/lib64/R/lib

3. run ldconfig as root

4. Install rpy2 (2.1.8) with pip (or easy_install), not through Yast

You would also have to build Rkward yourself, otherwise Yast will want 
to pull in dependencies.

Hope this helps,

Joona

> Hi Anne
> Thanks so much for answering.
> I did try and both, system and/or QGIS Python version are the same: 2.6.5.
> Then I tried the import rpy2.robjects as ro in the python console of
> QGIS but
> I do not understand the type of error. This is the outcomming text from the
> Kconsole or the Python console of QGIS:
>
>  >>> import rpy2 as rpy2
>  >>> import rpy2.robjects as ro
> Traceback (most recent call last):
> File "<input>", line 1, in <module>
> File "/usr/share/qgis/python/qgis/utils.py", line 291, in _import
> mod = _builtin_import(name, globals, locals, fromlist, level)
> File "/usr/local/lib64/python2.6/site-packages/rpy2/robjects/__init__.py",
> line 12, in <module>
> import rpy2.rinterface as rinterface
> File "/usr/share/qgis/python/qgis/utils.py", line 291, in _import
> mod = _builtin_import(name, globals, locals, fromlist, level)
> File
> "/usr/local/lib64/python2.6/site-packages/rpy2/rinterface/__init__.py",
> line 66, in <module>
> from rpy2.rinterface.rinterface import *
> File "/usr/share/qgis/python/qgis/utils.py", line 291, in _import
> mod = _builtin_import(name, globals, locals, fromlist, level)
> ImportError: /usr/lib64/R/lib/libRlapack.so: undefined symbol:
> _gfortran_concat_string
>
> I do not know where to go from here...
> thanks,
> Gian Paolo
>
>
> On Sunday 03 October 2010 06:17:52 you wrote:
>  > On Fri, 2010-09-24 at 15:36 -0400, G. Paolo Sanino V. wrote:
>  > > Hi,
>  >
>  > Hi Gianpaolo,
>  >
>  > > A lot has been done, searched and found, and it is almost there.
>  > >
>  > > The error is that cannot load Rpy2, despite it has been installed.
>  > >
>  > > This is an attempt to get it working using GUI and for newbies (as
>  > > myself). Here I added all the packages that solved the many
>  > > dependencies that raised in during this challenge.
>  > >
>  > > The box is an AMD64 box with OpenSuSE 11.3 installed from scratch
>  > >
>  > > Then this is what I have done so far:
>  > >
>  > > Using the one-click tool at the http://software.opensuse.org and/or
>  > > adding the repositories with Yast2:
>  > >
>  > >
> http://download.opensuse.org/repositories/Application:/Geo/openSUSE_11.3/
>  > > http://download.opensuse.org/repositories/science/openSUSE_11.3/
>  > >
>  > > I installed:
>  > >
>  > > qgis (version 1.5.1.5.4)
>  > > R-base (version 2.11.1-1.14)
>  > > R-base-devel
>  > > Rkward (to use R through a GUI)
>  > >
>  > > Before to add the homerange plugin in Qgis, it is stated to add some
>  > > dependencies for R (adehabitat, rgdal, shapefiles, gpclib). But it is
>  > > not that simple to get them; they have their own several dependencies
>  > > and some need to be compiled with C++, while others with Fortran. So
>  > > we need also those compilers. In simple, I went through each one and
>  > > develop a the list of packages needed to be installed to get the R
>  > > dependencies satisfied. Therefore, using Yast2 again, these are the
>  > > next needed rpm packages :
>  > >
>  > > make, gcc, gcc-c++, gcc-fortran, tk-devel, xorg-x11-devel
>  > > gdal (needed to add under R, the package rgdal)
>  > > python-gdal
>  > > libgdal1-devel
>  > >
>  > > python-rpy2 (2.0.6-7.1) this is to get Rpy2 (but is not found by
>  > > QGIS)
>  > >
>  > > Yast2 installed them and their own dependencies as well. Without
>  > > adding the previous packages, under R, the dependencies were never
>  > > satisfied despite being downloaded, because were not able to be
>  > > compiled and installed.
>  > >
>  > > Then, after having these packaged installed, as ROOT I used RKward
>  > > (the R GUI in KDE linux), to add the packages for R. The used
>  > > repository was UCLA . The selected R packages to be selected and
>  > > installed were:
>  > >
>  > > rgdal
>  > > shapefile
>  > > gpclib
>  > > adehabitat
>  > >
>  > > The installation went great with no problem, automatically getting the
>  > > dependencies for each of these packages.
>  > >
>  > > Then, having R done, I opened Qgis to install the Homerange plugin.
>  > >
>  > > However, every time I open qgis, I get the error of not being able to
>  > > load Rpy2, despite the package that provides it was installed.
>  > >
>  > > Any hint?
>  >
>  > Yes, one: is QGIS using the same Python where you installed rpy2?
>  > You can check that opening python from a terminal, and type:
>  >
>  > import sys
>  > print sys.version
>  >
>  > then open QGIS, open the Python console (Plugins > Python console) and
>  > type the same commands. If the versions are different, it probably means
>  > that QGIS has installed its own Python and that you installed rpy2 on
>  > the system's one.
>  > Any extra hint from Suse users is welcome :)
>  >
>  > in the QGIS Python console you can also type:
>  >
>  > import rpy2 as rpy2
>  > import rpy2.robjects as ro
>  >
>  > and report the Python errors - they are more informative than
>  > HomeRange_plugin's.
>  >
>  > hope this helps,
>  > anne
>  >



More information about the AniMov mailing list