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

2021-08-20 Thread Stefan Blumentrath
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  On Behalf Of Manuele 
Pesenti
Sent: fredag 20. august 2021 16:40
To: grass-user 
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 

from grass.pygrass.vector import Vector
  File "/usr/lib/grass78/etc/python/grass/pygrass/vector/__init__.py", line 5, 
in 
import grass.lib.gis as libgis
  File "/usr/lib/grass78/etc/python/grass/lib/gis.py", line 23, in 
_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




___
grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user


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

2021-08-20 Thread Manuele Pesenti
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 


    from grass.pygrass.vector import Vector

  File "/usr/lib/grass78/etc/python/grass/pygrass/vector/__init__.py", line 5, 
in 

    import grass.lib.gis as libgis

  File "/usr/lib/grass78/etc/python/grass/lib/gis.py", line 23, in 

    _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___
grass-user mailing list
grass-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user