[GRASS-user] Error import from grass.pygrass.vector library

Stefan Blumentrath Stefan.Blumentrath at nina.no
Fri Aug 20 12:26:22 PDT 2021


Dear Manuele,

For ctypes in pygrass, the C-libraries need to be loaded explicitly.

You could have a look here:
https://github.com/zarch/grass-session/blob/6097f834be20ee0d703deb2af90f22d6dc66f368/grass_session/session.py#L332
to see how it can be done, or just use the grass_session python library (pip install grass-session) for convenience…

Cheers
Stefan

From: grass-user <grass-user-bounces at lists.osgeo.org> On Behalf Of Manuele Pesenti
Sent: fredag 20. august 2021 16:40
To: grass-user <grass-user at lists.osgeo.org>
Subject: [GRASS-user] Error import from grass.pygrass.vector library

Dear All,

I'm moving my first steps on the development of a python script that uses Grass, but I cannot import from the grass.pygrass.vector library.
I work on a Ubuntu/Linux environment and I've installed grass using apt, this is the test script I'm currently running:

# -*- coding: utf-8 -*-

import os, sys

GISBASE = '/usr/lib/grass78'
GRASSBIN = '/usr/bin/grass78'

# Define GRASS-Python environment
os.environ['GISBASE'] = GISBASE

os.environ['GRASSBIN'] = GRASSBIN

sys.path.append(os.path.join(GISBASE, "etc", "python"))

from grass_session import Session
import grass.script as gs

print(f"LD_LIBRARY_PATH: {os.environ['LD_LIBRARY_PATH']}")
print(f"GRASSBIN: {os.environ['GRASSBIN']}")

from grass.pygrass.vector import Vector

print('DONE!')

and this is the output:

$ python import_test.py
LD_LIBRARY_PATH: /usr/lib/grass78/lib
GRASSBIN: /usr/bin/grass78
Traceback (most recent call last):
  File "/usr/lib/grass78/etc/python/grass/lib/ctypes_loader.py", line 76, in load
    return ctypes.cdll.LoadLibrary(path)
  File "/usr/lib/python3.9/ctypes/__init__.py", line 452, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib/python3.9/ctypes/__init__.py", line 374, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libgrass_datetime.7.8.so: cannot open shared object file: No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/manuele/Lavoro/ETS/ETSCore/scripts/import_test.py", line 21, in <module>
    from grass.pygrass.vector import Vector
  File "/usr/lib/grass78/etc/python/grass/pygrass/vector/__init__.py", line 5, in <module>
    import grass.lib.gis as libgis
  File "/usr/lib/grass78/etc/python/grass/lib/gis.py", line 23, in <module>
    _libs["grass_gis.7.8"] = load_library("grass_gis.7.8")
  File "/usr/lib/grass78/etc/python/grass/lib/ctypes_loader.py", line 62, in load_library
    return self.load(path)
  File "/usr/lib/grass78/etc/python/grass/lib/ctypes_loader.py", line 78, in load
    raise ImportError(e)
ImportError: libgrass_datetime.7.8.so: cannot open shared object file: No such file or directory

Thank you very mutch for any help

Cheers

      Manuele




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20210820/58189023/attachment-0001.html>


More information about the grass-user mailing list