[gdal-dev] building gdal: conflict with sqlite3 version

Max Bohnet bohnet.max at googlemail.com
Fri Jan 23 04:07:03 PST 2015


Dear gdal experts,

Under Ubuntu 14, 64bit, i have the python distribution anaconda installed in
/opt/anaconda
and want to use the environment
/opt/anaconda/envs/py27
source activate py27

I need gdal with Esri FileGeodatabase support, so i could not use
conda install gdal, because this version is built without FGDB-support.
I had to build it from source using gdal 1.11.1
with the following options for the ./configure command

(py27)root at j109817:/opt/drivers/gdal/gdal-1.11.1# ./configure
--with-fgdb=/opt/drivers/FileGDB_API/ --with-pg
--with-python=/opt/anaconda/envs/py27/bin/python --with-sqlite3
--with-spatialite

this causes a warning of a conflict between the FGDB-driver and the
libxml2 driver, because the FGDB-driver of Esri comes with another
libxml2 library as the one in anaconda python.
If i ignore the warning, there is an error when i type make.

So i renamed /opt/anaconda to /opt/anaconda2 and started the building of
gdal:

(py27)root at j109817:/opt/drivers/gdal/gdal-1.11.1# ./configure
--with-fgdb=/opt/drivers/FileGDB_API/ --with-pg
--with-python=/opt/anaconda2/envs/py27/bin/python --with-sqlite3
--with-spatialite
make
make install

This installs a package GDAL-1.11.1-py2.7-linux-x86_64.egg into
/opt/anaconda2/envs/py27/lib/python2.7/site-packages

and then renamed /opt/anaconda2 back to /opt/anaconda

when i start python and try to

from osgeo import gdal
the following error message appears:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File
"/opt/anaconda/envs/py27/lib/python2.7/site-packages/GDAL-1.11.1-py2.7-linux-x86_64.egg/osgeo/__init__.py",
line 21, in <module>
    _gdal = swig_import_helper()
  File
"/opt/anaconda/envs/py27/lib/python2.7/site-packages/GDAL-1.11.1-py2.7-linux-x86_64.egg/osgeo/__init__.py",
line 17, in swig_import_helper
    _mod = imp.load_module('_gdal', fp, pathname, description)
ImportError: /usr/local/lib/libgdal.so.1: undefined symbol:
sqlite3_column_table_name

In another Forum i found, that the sqlite3 python package is compiled
aganist another sqlite version than gdal.
In Anaconda python 2.7, it seems to be sqlite version 3.8.4.1
>>> import sqlite3
>>> sqlite3.sqlite_version
'3.8.4.1'
>>>

I could find 4 sourcefiles for sqlite 3.8.4.1
wget
https://olex-secure.openlogic.com/content/private/5e6a6f0815e830bba705e79e4a0470fbee8a5880/sqlite/3.8.4.1/sqlite-amalgamation-3080401.zip
unzip sqlite-amalgamation-3080401.zip
gcc shell.c sqlite3.c -lpthread -ldl
mv "a.out" sqlite3841

and tried to build gdal against this sqlite3 version with
./configure --with-fgdb=/opt/drivers/FileGDB_API/ --with-pg
--with-python=/opt/anaconda2/envs/py27/bin/python
--with-sqlite3=/opt/drivers/sqlite/sqlite-amalgamation-3080401/sqlite3481 --with-spatialite

but i have no idea, if that makes any sense.

the error that appears when from osgeo import gdal remains the same.

any idea what i could do?

Thanks in advance for any help,
Max


More information about the gdal-dev mailing list