[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