Code


Version 3 (modified by tommi, 6 years ago) (diff)

Copying libraries is ugly

These instructions apply for Fedora 9 and GeoDjango on django1.0 and mysql 5.0.51. These are the problems I ran into trying to get GeoDjango running

Third Party Library Installation

Download and untar the geos lib

$ wget http://download.osgeo.org/geos/geos-3.0.0.tar.bz2
$ tar xjf geos-3.0.0.tar.bz2

Next, change into the directory where GEOS was unpacked, run the configure script and attempt to run the make script

$ ./configure
$ make

If make fails, I think it's due to gcc 4.3.0 not liking the includes for some of the files. You can download the latest svn drop (3.1.0) and that should compile OR you can make the changes in the 3.0.0 source code by following the diff's on this page: http://bugs.gentoo.org/attachment.cgi?id=149838&action=view (i.e. add the lines starting with a '+' and remove the lines starting with a '-' from the respective file)

Once you have made it successfully, install it

# make install

Install PROJ.4 and GDAL according to the main installation page

Test that the GEOS libraries are where they should be by changing to a django project directory and importing the models from django.contrib.gis.db

$ python manage.py shell
Python 2.5.1 (r251:54863, Jun 15 2008, 18:24:56) 
[GCC 4.3.0 20080428 (Red Hat 4.3.0-8)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.contrib.gis.db import models

If you get no errors, it's all good! If you get this (at the bottom of the stack trace)

...
  File "/usr/lib64/python2.5/ctypes/__init__.py", line 340, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libgeos_c.so.1: cannot open shared object file: No such file or directory

Add /usr/local/lib to the dynamic linker run-time bindings

echo '/usr/local/lib' >> /etc/ld.so.conf.d/local-lib.conf
ldconfig