[gdal-dev] Error building Python bindings - GDALCreateDriver was not declared in this scope

Nick Cummins nickmcummins at icloud.com
Thu Nov 2 11:35:26 PDT 2017


Hi,



I'm trying to build GDAL bindings for Python 3. I have the gdal-2.2.2-1 package installed from the Arch Linux official repositories, which does contain bindings for Python 2.7.



PYTHONPATH=/usr/lib/python2.7/site-packages/osgeo
python2

>>> from osgeo import gdal

>>> exit()



python3

>>> from osgeo import gdal

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'osgeo'



But when I try to build the bindings for Python 3myself (have tried using the python-gdal package from Arch's AUR, building it manually, and using easy_install GDAL), I get the following error:

➜  Desktop sudo easy_install GDAL       
Searching for GDAL
Reading https://pypi.python.org/simple/GDAL/
Downloading https://pypi.python.org/packages/11/cd/edef955a6ef6cb4f2113647d7465b34663e074451b66919e734466ba5197/GDAL-2.2.2.tar.gz#md5=bc5a58ec0e82420fdc910bafc3b5800a
Best match: GDAL 2.2.2
Processing GDAL-2.2.2.tar.gz
Writing /tmp/easy_install-jom80hpq/GDAL-2.2.2/setup.cfg
Running GDAL-2.2.2/setup.py -q bdist_egg --dist-dir /tmp/easy_install-jom80hpq/GDAL-2.2.2/egg-dist-tmp-tf275y_9
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
extensions/osr_wrap.cpp:3339:13: warning: ‘void GDALPythonFreeCStr(void*, int)’ defined but not used [-Wunused-function]
 static void GDALPythonFreeCStr(void* ptr, int bToFree)
             ^~~~~~~~~~~~~~~~~~
extensions/osr_wrap.cpp:3309:14: warning: ‘char* GDALPythonObjectToCStr(PyObject*, int*)’ defined but not used [-Wunused-function]
 static char* GDALPythonObjectToCStr(PyObject* pyObject, int* pbToFree)
              ^~~~~~~~~~~~~~~~~~~~~~
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
extensions/gnm_wrap.cpp:3321:13: warning: ‘void GDALPythonFreeCStr(void*, int)’ defined but not used [-Wunused-function]
 static void GDALPythonFreeCStr(void* ptr, int bToFree)
             ^~~~~~~~~~~~~~~~~~
extensions/gnm_wrap.cpp:3291:14: warning: ‘char* GDALPythonObjectToCStr(PyObject*, int*)’ defined but not used [-Wunused-function]
 static char* GDALPythonObjectToCStr(PyObject* pyObject, int* pbToFree)
              ^~~~~~~~~~~~~~~~~~~~~~
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
In file included from /usr/include/python3.6m/numpy/ndarraytypes.h:1809:0,
                 from /usr/include/python3.6m/numpy/ndarrayobject.h:18,
                 from /usr/include/python3.6m/numpy/arrayobject.h:4,
                 from extensions/gdal_array_wrap.cpp:3464:
/usr/include/python3.6m/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
 #warning "Using deprecated NumPy API, disable it by " \
  ^~~~~~~
extensions/gdal_array_wrap.cpp: In function ‘void GDALRegister_NUMPY()’:
extensions/gdal_array_wrap.cpp:3528:45: error: ‘GDALCreateDriver’ was not declared in this scope
         poDriver = static_cast<GDALDriver*>(GDALCreateDriver());
                                             ^~~~~~~~~~~~~~~~
extensions/gdal_array_wrap.cpp:3528:45: note: suggested alternative: ‘GDALGetDriver’
         poDriver = static_cast<GDALDriver*>(GDALCreateDriver());
                                             ^~~~~~~~~~~~~~~~
                                             GDALGetDriver
extensions/gdal_array_wrap.cpp: At global scope:
extensions/gdal_array_wrap.cpp:3448:13: warning: ‘void GDALPythonFreeCStr(void*, int)’ defined but not used [-Wunused-function]
 static void GDALPythonFreeCStr(void* ptr, int bToFree)
             ^~~~~~~~~~~~~~~~~~
extensions/gdal_array_wrap.cpp:3418:14: warning: ‘char* GDALPythonObjectToCStr(PyObject*, int*)’ defined but not used [-Wunused-function]
 static char* GDALPythonObjectToCStr(PyObject* pyObject, int* pbToFree)
              ^~~~~~~~~~~~~~~~~~~~~~
error: Setup script exited with error: command 'gcc' failed with exit status 1


Any ideas? Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20171102/088f74cd/attachment.html>


More information about the gdal-dev mailing list