ОШИБКА Установка GeoIP-Python на Windows - PullRequest
0 голосов
/ 22 марта 2011

Я пытаюсь установить GeoIP-Python-1.2.4 на Windows 7. Прежде чем я смогу это сделать, мне нужно установить GeoIP-1.4.6.Я использую инструкции README.MinGW для установки.Я использовал MinGW и получил ./configure.Когда я делаю 'make', я получаю следующую ошибку:

*** Warning: This system can not link to static lib archive libGeoIP.la.
*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a
*** shared version of the library, which you do not appear to have.
libtool: link: warning: undefined symbols not allowed in i686-pc-mingw32 shared
libraries
ar cru .libs/libGeoIPUpdate.a  GeoIPUpdate.o md5.o
ranlib .libs/libGeoIPUpdate.a
creating libGeoIPUpdate.la
(cd .libs && rm -f libGeoIPUpdate.la && cp -p ../libGeoIPUpdate.la libGeoIPUpdat
e.la)
make[1]: Leaving directory `/home/Harp/GeoIP-1.4.6/libGeoIP'
Making all in apps
make[1]: Entering directory `/home/Harp/GeoIP-1.4.6/apps'
gcc -DPACKAGE_NAME=\"GeoIP\" -DPACKAGE_TARNAME=\"GeoIP\" -DPACKAGE_VERSION=\"1.4
.6\" -DPACKAGE_STRING=\"GeoIP\ 1.4.6\" -DPACKAGE_BUGREPORT=\"support@maxmind.com
\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -
DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE
_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1
 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DPACKAGE=\"GeoIP\" -DVERSION=\
"1.4.6\" -DLITTLE_ENDIAN_HOST=1 -DHAVE_STDINT_H=1 -DHAVE_ZLIB_H=1 -DHAVE_GETTIME
OFDAY=1 -DHAVE_VSNPRINTF=1 -DHAVE_VSPRINTF=1 -I. -I../libGeoIP -Wall -DSYSCONFDI
R=\"/usr/local/etc\" -Wall   -O3 -I/usr/local/include -c geoiplookup.c
/bin/sh ../libtool --tag=CC   --mode=link gcc  -O3 -I/usr/local/include  -L/usr/
local/lib -lwsock32 -o geoiplookup.exe geoiplookup.o ../libGeoIP/libGeoIP.la
mkdir .libs
gcc -O3 -I/usr/local/include -o geoiplookup.exe geoiplookup.o  -L/usr/local/lib
../libGeoIP/.libs/libGeoIP.a -lwsock32
../libGeoIP/.libs/libGeoIP.a(GeoIP.o):GeoIP.c:(.text+0x8af): undefined reference
 to `getnameinfo'
../libGeoIP/.libs/libGeoIP.a(GeoIP.o):GeoIP.c:(.text+0xa1c): undefined reference
 to `getaddrinfo'
../libGeoIP/.libs/libGeoIP.a(GeoIP.o):GeoIP.c:(.text+0xa48): undefined reference
 to `freeaddrinfo'
../libGeoIP/.libs/libGeoIP.a(GeoIP.o):GeoIP.c:(.text+0x14ae): undefined referenc
e to `getaddrinfo'
../libGeoIP/.libs/libGeoIP.a(GeoIP.o):GeoIP.c:(.text+0x14e7): undefined referenc
e to `freeaddrinfo'
../libGeoIP/.libs/libGeoIP.a(GeoIP.o):GeoIP.c:(.text+0x162c): undefined referenc
e to `getaddrinfo'
../libGeoIP/.libs/libGeoIP.a(GeoIP.o):GeoIP.c:(.text+0x170f): undefined referenc
e to `freeaddrinfo'
../libGeoIP/.libs/libGeoIP.a(GeoIP.o):GeoIP.c:(.text+0x2713): undefined referenc
e to `getaddrinfo'
../libGeoIP/.libs/libGeoIP.a(GeoIP.o):GeoIP.c:(.text+0x281f): undefined referenc
e to `freeaddrinfo'
../libGeoIP/.libs/libGeoIP.a(GeoIP.o):GeoIP.c:(.text+0x2ffb): undefined referenc
e to `getaddrinfo'
../libGeoIP/.libs/libGeoIP.a(GeoIP.o):GeoIP.c:(.text+0x30bf): undefined referenc
e to `freeaddrinfo'
../libGeoIP/.libs/libGeoIP.a(GeoIP.o):GeoIP.c:(.text+0x32b3): undefined referenc
e to `getaddrinfo'
../libGeoIP/.libs/libGeoIP.a(GeoIP.o):GeoIP.c:(.text+0x3377): undefined referenc
e to `freeaddrinfo'
collect2: ld returned 1 exit status
make[1]: *** [geoiplookup.exe] Error 1
make[1]: Leaving directory `/home/Harp/GeoIP-1.4.6/apps'
make: *** [all-recursive] Error 1

Когда я просто пытаюсь установить GeoIP-Python, я получаю следующую ошибку:

Harp@T500 ~/GeoIP-Python-1.2.4
$ python setup.py  install
running install
running build
running build_ext
building 'GeoIP' extension
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox
/MD /W3 /GS- /DNDEBUG -IInclude -Ic:\Python27\include -Ic:\Python27\PC /Tcpy_Geo
IP.c /Fobuild\temp.win32-2.7\Release\py_GeoIP.obj
py_GeoIP.c
py_GeoIP.c(31) : error C2059: syntax error : ';'
py_GeoIP.c(33) : error C2059: syntax error : '}'
py_GeoIP.c(37) : error C2065: 'GeoIP_GeoIPObject' : undeclared identifier
py_GeoIP.c(37) : error C2275: 'GeoIP' : illegal use of this type as an expressio
n
        c:\mingw\msys\1.0\home\harp\geoip-python-1.2.4\include\GeoIP.h(74) : see
 declaration of 'GeoIP'
py_GeoIP.c(38) : error C2143: syntax error : missing ';' before 'type'
py_GeoIP.c(40) : error C2065: 'flags' : undeclared identifier
...
...
py_GeoIP.c(275) : error C2065: 'GeoIP_GeoIPObject' : undeclared identifier
py_GeoIP.c(275) : error C2059: syntax error : ')'
py_GeoIP.c(275) : fatal error C1003: error count exceeds 100; stopping compilati
on
error: command '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.ex
e"' failed with exit status 2

Моя цель - установитьGeoIP-Python.Есть идеи, как я могу это сделать?или кто-то может объяснить, что означают эти ошибки?

Я пытался найти готовый вариант, но не смог найти ни одного.

Ответы [ 3 ]

2 голосов
/ 20 июля 2011

лучший выбор: pygeoip , это чистый Python API для баз данных MaxMind GeoIP, больше не требуется C API

2 голосов
/ 22 марта 2011

Вы можете попробовать

python setup.py build_ext -cmingw32

(или -cmingw, не помню.)

Таким образом он попытается использовать компилятор MinGW (по умолчанию, как видно из командной строки, MSVC)

0 голосов
/ 26 апреля 2011

Я справился с ошибками компоновщика при сборке библиотеки GeoIP C, изменив LDFLAGS, которые они дают в инструкциях. Вместо того, чтобы связать winsock32, я связал ws2_32. Сделать проверку по-прежнему не удается для меня, но только на 2 кода страны по имени тесты. Код страны по адресным тестам пройден просто отлично.

...