在Windows XP上安装mapnik时出现“ImportError: DLL加载失败:未找到指定过程”错误。

3 投票
3 回答
3004 浏览
提问于 2025-04-17 03:14

我正在尝试在Windows XP上安装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文件。我安装了这两个文件,但问题依然没有解决。

Dependency Walker还找出了另外三个缺失的dll文件,我也安装了这些,但问题还是没解决。

任何建议都非常感谢!

3 个回答

0

我之前也遇到过同样的问题(在 Windows Server 2012 R2 上)。

我在谷歌上搜索了很多,尝试了所有的解决方案。

顺便说一下,今天 mapnik 修复了 libxml2.dll 的问题,通过链接静态地址来解决。

最后,我的问题出在环境变量中的 mapnik 库路径两头用了双引号("C:\mapnik-v2.2.0\lib")!!

在系统环境变量中,千万不要使用双引号。

我把 "C:\mapnik-v2.2.0\lib" 改成了 C:\mapnik-v2.2.0\lib,结果一切都正常了。;)

0

试着在Windows上安装libxml或libxml2。看起来你可能缺少这个依赖项,或者你的libxml2.dll文件可能过时了。zlatkovic.com是获取Windows版libxml的地方:

libxml(2)

在这里下载:ftp://ftp.zlatkovic.com/libxml/

6

这个帖子虽然有点旧,但我最近遇到了同样的问题,并通过网上找到的一些不同提示解决了它。

  1. 我确保自己安装了32位的Python。我使用的是Windows x86 MSI安装包(版本2.7.2)。
  2. 我设置了Python的路径变量:C:\Program Files (x86)\Python27。
  3. 我下载并安装了Mapnik v2.2.0的32位Windows包(没有SDK版本)。
  4. 我按照这个顺序设置了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中提到的)。
  5. 确保你的c:\windows文件夹里有libxml2.dll,正如Joan Natalie在安装Mapnik 2.2.0在Windows 7上使用Python 2.7中提到的。我是从我的Mapnik安装文件夹C:\Program Files\mapnik-v2.2.0\lib里复制的这个dll文件。

之后,我就能顺利执行“import mapnik”这个命令了。我还能够运行这里提到的第5个python示例:https://gist.github.com/springmeyer/5651701

所以我想我遇到了两个问题。首先是缺少libxml2.dll文件,其次是因为我把mapnik的路径放在了路径变量的最后,导致Python找到了错误的文件,因为我系统里有很多同名的dll。

希望我能提供缺失的解决方案。

撰写回答