gpt4 book ai didi

python - 为 Windows 7 编译 IP2Location Python 扩展

转载 作者:可可西里 更新时间:2023-11-01 11:40:37 25 4
gpt4 key购买 nike

我想编译/安装在此处找到的 IP2Location Python 扩展:

www.ip2location.com/python.aspx

我尝试按照这些网站上的说明进行操作:

eli.thegreenplace.net/2008/06/28/compiling-python-extensions-with-distutils-and-mingw/ boodebr.org/main/python/build-windows-extensions

但我没有得到任何地方。问题是 Python 扩展依赖于另一个 C 库:

www.ip2location.com/c.aspx

当我尝试在 cygwin 中编译这个库时,我得到以下输出:

make  all-recursive
make[1]: Entering directory `/home/ty/Python-IP2Location/C-IP2Location-3.0.0'
Making all in libIP2Location
make[2]: Entering directory `/home/ty/Python-IP2Location/C-IP2Location-3.0.0/li
bIP2Location'
/bin/sh ../libtool --tag=CC --mode=link gcc -mno-cygwin -IiMath/ -g -O2 -modul
e -no-undefined -avoid-version -o libIP2Location.la -rpath /cygdrive/c/MinGW/li
b libIP2Location_la-IP2Location.lo libIP2Location_la-imath.lo
libtool: link: rm -fr .libs/libIP2Location.dll.a
libtool: link: gcc -mno-cygwin -shared .libs/libIP2Location_la-IP2Location.o .l
ibs/libIP2Location_la-imath.o -mno-cygwin -o .libs/libIP2Location.dll -Wl,-
-enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libIP2Location.dll.
a
.libs/libIP2Location_la-IP2Location.o: In function `IP2Location_ip2no':
/home/ty/Python-IP2Location/C-IP2Location-3.0.0/libIP2Location/IP2Location.c:71
8: undefined reference to `_inet_addr@4'
Creating library file: .libs/libIP2Location.dll.a
collect2: ld returned 1 exit status
make[2]: *** [libIP2Location.la] Error 1
make[2]: Leaving directory `/home/ty/Python-IP2Location/C-IP2Location-3.0.0/lib
IP2Location'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/ty/Python-IP2Location/C-IP2Location-3.0.0'
make: *** [all] Error 2

我在 Windows 7 32 位上运行 python 2.6.3。我有 MS Visual Studio 2008(虽然不知道如何使用它),当然还有 cygwin/MinGW。

如有任何帮助或指点,我们将不胜感激。

最佳答案

好的,所以完整的解决方案是:

  1. 下载 stdint.h 并将其放入 IP2Location C 库文件夹:http://msinttypes.googlecode.com/svn/trunk/stdint.h
  2. 打开dos提示符并执行“C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat”
  3. 在同一个 dos 提示符下执行“nmake/f Makefile.win”
  4. cd 到 Python 扩展文件夹并执行“set LINK=/nod:msvcrt.lib”
  5. 最后执行标准的“python setup.py install”

“set LINK=/nod:msvcrt.lib”建议归功于 Providenza & Boekelheide, Inc (probo.com) 的 Tim Roberts。 -- 他很友善地回答了我在 python win32 邮件列表上寻求帮助的呼声。谢谢蒂姆!

关于python - 为 Windows 7 编译 IP2Location Python 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1815689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com