[GRASS-dev] [GRASS GIS] #2708: Run GRASS with Python3

GRASS GIS trac at osgeo.org
Wed Jul 22 00:34:14 PDT 2015

#2708: Run GRASS with Python3
  Reporter:  zarch        |      Owner:  grass-dev@…
      Type:  defect       |     Status:  new
  Priority:  normal       |  Milestone:  7.0.1
 Component:  Default      |    Version:  unspecified
Resolution:               |   Keywords:
       CPU:  Unspecified  |   Platform:  Unspecified

Comment (by zarch):

 Replying to [comment:3 glynn]:
 > {{{
 > args.append(opt.encode('ascii') + b'=' + _make_val(val)
 > }}}
 > To be honest, converting grass.script to Python 3 isn't going to be much
 > as a scripting library fundamentally revolves around dealing with byte
 > strings (command-line arguments, environment variables, stdin/stdout),
 > while Python 3 tries to pretend that byte strings are some kind of low-
 > implementation detail in a world where everything is Unicode.

 ok, I've followed your approach, now the make_command it is working only
 with bytes and return a list of bytes.
 Do you think that I could commit these changes in trunk? Other things that
 should be change before?

 I've also started fixing several GRASS scripts to be parsed also with

 However I don't know how to fix the ctypes binding of GRASS, at the moment
 I get:

 In [1]: from grass.lib import gis
 ImportError                               Traceback (most recent call
 <ipython-input-1-9c20dc5e4f67> in <module>()
 ----> 1 from grass.lib import gis

 gnu/etc/python/grass/lib/gis.py in <module>()
      13 _libdirs = []
 ---> 15 from ctypes_preamble import *
      16 from ctypes_preamble import _variadic_function
      17 from ctypes_loader import *

 ImportError: No module named 'ctypes_preamble'

 the problem here is that the gis.py file should start with:

 from __future__ import absolute_import


 from .ctypes_preamble import *
 from .ctypes_preamble import _variadic_function
 from .ctypes_loader import *


 But these files are generated with make and I don't understand where
 should I change the code. Any hint?

Ticket URL: <https://trac.osgeo.org/grass/ticket/2708#comment:4>
GRASS GIS <http://grass.osgeo.org>

More information about the grass-dev mailing list