Commit f876552f authored by Ramiro Morales's avatar Ramiro Morales
Browse files

(Re-)added GeoDjango instructions for building pysqlite2 correctly.

This is a partial undo of 1b142ef5.
parent 3f900a1e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -285,7 +285,7 @@ William Kyngesburye provides a number of `geospatial library binary packages`__
that make it simple to get GeoDjango installed on OS X without compiling
them from source.  However, the `Apple Developer Tools`_ are still necessary
for compiling the Python database adapters :ref:`psycopg2_kyngchaos` (for PostGIS)
and ``pysqlite2`` (for SpatiaLite).
and :ref:`pysqlite2` (for SpatiaLite).

.. note::

+54 −0
Original line number Diff line number Diff line
@@ -107,6 +107,60 @@ Finally, do the same for the SpatiaLite tools::

__ http://www.gaia-gis.it/gaia-sins/libspatialite-sources/

.. _pysqlite2:

pysqlite2
^^^^^^^^^

If you've decided to use a :ref:`newer version of pysqlite2
<using-newer-versions-of-pysqlite>` instead of the ``sqlite3`` Python stdlib
module, then you need to make sure it can load external extensions (i.e. the
required ``enable_load_extension`` method is available so ``SpatiaLite`` can be
loaded).

This might involve building it yourself. For this, download pysqlite2 2.6, and
untar::

    $ wget https://pypi.python.org/packages/source/p/pysqlite/pysqlite-2.6.3.tar.gz
    $ tar xzf pysqlite-2.6.3.tar.gz
    $ cd pysqlite-2.6.3

Next, use a text editor (e.g., ``emacs`` or ``vi``) to edit the ``setup.cfg`` file
to look like the following:

.. code-block:: ini

    [build_ext]
    #define=
    include_dirs=/usr/local/include
    library_dirs=/usr/local/lib
    libraries=sqlite3
    #define=SQLITE_OMIT_LOAD_EXTENSION

or if you are on Mac OS X:

.. code-block:: ini

    [build_ext]
    #define=
    include_dirs=/Library/Frameworks/SQLite3.framework/unix/include
    library_dirs=/Library/Frameworks/SQLite3.framework/unix/lib
    libraries=sqlite3
    #define=SQLITE_OMIT_LOAD_EXTENSION

.. note::

    The important thing here is to make sure you comment out the
    ``define=SQLITE_OMIT_LOAD_EXTENSION`` flag and that the ``include_dirs``
    and ``library_dirs`` settings are uncommented and set to the appropriate
    path if the SQLite header files and libraries are not in ``/usr/include``
    and ``/usr/lib``, respectively.

After modifying ``setup.cfg`` appropriately, then run the ``setup.py`` script
to build and install::

    $ sudo python setup.py install

.. _spatialite_macosx:

Mac OS X-specific instructions
+2 −3
Original line number Diff line number Diff line
@@ -604,9 +604,8 @@ version of SQLite.
Using newer versions of the SQLite DB-API 2.0 driver
----------------------------------------------------

For versions of Python 2.5 or newer that include ``sqlite3`` in the standard
library Django will now use a ``pysqlite2`` interface in preference to
``sqlite3`` if it finds one is available.
Django will use a ``pysqlite2`` module in preference to ``sqlite3`` as shipped
with the Python standard library if it finds one is available.

This provides the ability to upgrade both the DB-API 2.0 interface or SQLite 3
itself to versions newer than the ones included with your particular Python