我正试图在WindowsXP上安装mapnik。
在认真遵循他们网站(http://trac.mapnik.org/wiki/WindowsInstallation)上的说明后,它将失败并显示消息:
File "<stdin>", line 1, in <module>
File "C:\mapnik-0.7.1\python\2.6\site-packages\mapnik\__init__.py", line 43, in <module> from _mapnik import *
ImportError: DLL load failed: The specified procedure could not be found.
我也尝试了osgeo4w安装程序,虽然没有成功,但在显示相同的错误消息之前,也会弹出一个对话框,说:
"The procedure entry point xmlCtxtReadMemory could not be located in the dynamic link library libxml2.dll."
故障排除建议强调了一些可能丢失的dll。我安装了这两个,但未能解决问题。
依赖性Walker还发现了另外三个丢失的dll,我也安装了它们,但仍然没有解决问题。
任何建议都非常感谢!
最佳答案
这是一条很老的线。不过,我遇到了同样的问题,并能够解决它与不同的提示,我发现在网上。
我必须确保我有32位版本的python。我使用了Windowsx86MSI安装程序(2.7.2)
我为python设置了路径变量:c:\程序文件(x86)\ python27
我下载并安装了Mapnik v2.2.0 Windows 32位软件包(因此没有sdk版本)
我按如下顺序设置lib和bin文件夹的路径变量:C:\ Program Files\Mapnik-v2.2.0\lib;C:\ Program Files\Mapnik-v2.2.0\bin(这里是重要的部分:确保将这两个条目放在路径变量的最开始处,如zvolsky在https://github.com/mapnik/mapnik-packaging/issues/109中所述)
确保libxml2.dll位于c:\ windows文件夹中,正如joan natalie在Installing Mapnik 2.2.0 in windows 7 with Python 2.7中提到的,我刚刚从mapnik安装文件夹c:\ Program Files\mapnik-v2.2.0\lib复制了dll文件
之后,我就可以执行命令“import mapnik”而没有任何问题。我还能够执行python演示,如第5条所述:https://gist.github.com/springmeyer/5651701
所以我想我有两个问题首先,我不知何故丢失了libxml2.dll文件,其次,由于我将mapnik条目放在末尾的path变量中,python不知何故出错了,因为我的系统中有许多相同的dll。
希望我能在这里提供丢失的解决方案。