pip geoip installing in ubuntu gcc error

Najeeb Choudhary picture Najeeb Choudhary · Sep 21, 2014 · Viewed 12.7k times · Source

i am try to install geoip in ubuntu in python pip...but there is same gcc error

pip install GeoIP

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes - fPIC -I/usr/include/python2.7 -c py_GeoIP.c -o build/temp.linux-i686-2.7/py_GeoIP.o -fno- strict-aliasing

py_GeoIP.c:23:19: fatal error: GeoIP.h: No such file or directory

compilation terminated.

error: command 'gcc' failed with exit status 1

how to solve this problem in ubuntu

Answer

andrewdotn picture andrewdotn · Sep 21, 2014

You need to install the libgeoip-dev package.

$ easy_install GeoIP
Searching for GeoIP
Reading https://pypi.python.org/simple/GeoIP/
...
py_GeoIP.c:23:19: fatal error: GeoIP.h: No such file or directory
 #include "GeoIP.h"
                   ^
compilation terminated.
error: Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
Returned 1.


$ apt-cache search geoip
...
libgeoip-dev - Development files for the GeoIP library
...


andrew@refbuntu:~$ sudo apt-get install libgeoip-dev -y
[sudo] password for andrew: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  geoip-bin libgeoip-dev
0 upgraded, 2 newly installed, 0 to remove and 159 not upgraded.
...
Setting up libgeoip-dev (1.5.1-1ubuntu1) ...
andrew@refbuntu:~$ easy_install GeoIP
...
Running GeoIP-1.3.2/setup.py -q bdist_egg --dist-dir /tmp/easy_install-rwdpkL/GeoIP-1.3.2/egg-dist-tmp-DLLeBT
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'
  warnings.warn(msg)
warning: no files found matching 'ChangeLog'
zip_safe flag not set; analyzing archive contents...
Adding GeoIP 1.3.2 to easy-install.pth file

Installed /home/andrew/.local/lib/python2.7/site-packages/GeoIP-1.3.2-py2.7-linux-x86_64.egg
Processing dependencies for GeoIP
Finished processing dependencies for GeoIP

If you install the apt-file package, you can also search by filename for packages containing that file:

$ apt-file search GeoIP.h
libgeoip-dev: /usr/include/GeoIP.h

This is really handy for any installation/compilation process that fails due to missing dependencies.