【问题标题】:Cannot install node-mapnik on Windows 2008 x64无法在 Windows 2008 x64 上安装 node-mapnik
【发布时间】:2025-04-07 12:05:02
【问题描述】:

过去几天我一直在尝试让 node-mapnik 运行,但没有成功。

最初受到 Wilhelm Berg 的演示 (https://www.youtube.com/watch?v=GlTaRpg3CbQ) 的启发,该演示使用 node-mapnik 渲染纯矢量地图,我有兴趣让它在 Windows Server 上运行。

我已经解决了与这些主题相关的所有 StackExchange 问题,包括 Wilhelm 的清单,以使其在 Windows 7 x64 上运行,但我处于死胡同,我的知识在进一步诊断问题方面确实有限。

我的环境是:

  • Windows 2008 Server R2 x64
  • Visual Studio Express 2012 桌面版(32 位和 64 位)
  • Node.js v0.10.26(64 位)
  • Python27(32 位)


我已采取以下步骤:

  1. 安装好从git下载的Mapnik 2.2.0 SDK,放在C:\apps\mapnik-v2.2.0


  2. 已添加到 PATH:

    C:\apps\mapnik-v2.2.0\lib

    C:\apps\mapnik-v2.2.0\bin


  3. 安装的Python v2.7(32位)下载并放置在C:\apps\python27


  4. 已添加到 PATH:

    C:\apps\python27

    C:\apps\python27\脚本


  5. 添加到 PYTHONPATH:

    C:\apps\Python27\Lib; C:\apps\Python27\DLLs;

    C:\apps\Python27\Lib\lib-tk;

    C:\apps\mapnik-v2.2.0\python\2.7\site-packages;


  6. 使用 VS 2012 重建 node-gyp

    node-gyp 重建 --msvs_version=2012


  7. 下载并安装protobuf(32位)并放在c:\apps\protobuf


  8. 已添加到 PATH:

    c:\apps\protobuf


  9. 使用 NPM 安装 protobuf

    npm install protobuf --msvs_version=2012


  10. 使用 git 下载开罗

    git clone git://anongit.freedesktop.org/git/cairo


  11. 将 Cairo 文件复制到 mapnik:

    将 cairo\src\cairo-svg-surface.c 复制到 C:\apps\mapnik-v2.2.0\include

    将 cairo\src\cairo-svg.h 复制到 C:\apps\mapnik-v2.2.0\include

    将 cairo\src\cairo-svg-surface-private.h 复制到 C:\apps\mapnik-v2.2.0\include


  12. 使 proj4 epsg 文件可用:

    SET PROJ_LIB=C:\apps\mapnik-v2.2.0\share\proj


  13. 尝试安装 node-mapnik

    npm install node-mapnik --msvs_version=2012


我收到以下错误:

node-pre-gyp 错误!需要源码编译:404状态码下载 压缩包 ... mapnik_grid.cpp c:\users\administrator\node_modules\node-mapnik\build\release\obj\global_interm ediate\vector_tile.pb.h(9): 致命错误 C1083: 无法打开包含 文件:'googl e/protobuf/stubs/common.h':没有这样的文件或目录 (C:\用户\管理员\n ode_modules\node-mapnik\build\Release\obj\global_intermediate\vector_tile.pb.cc ) [C:\Users\Administrator\node_modules\node-mapnik\build\mapnik.vcxproj] c:\users\administrator\node_modules\node-mapnik\src\utils.hpp(11): 致命错误 C1083:无法打开包含文件:'mapnik/unicode.hpp':否 此类文件或目录 y (..\src\mapnik_geometry.cpp) [C:\Users\Administrator\node_modules\node-mapnik \build\mapnik.vcxproj] mapnik_layer.cpp mapnik_cairo_surface.cpp c:\users\administrator\node_modules\node-mapnik\src\mapnik_featureset.hpp(6): 致命错误 C1083:无法打开包含文件: 'mapnik/datasource_cache.hpp':没有这样的文件或目录 (..\src\mapnik_featureset.cpp) [C:\Users\Administrator\no de_modules\node-mapnik\build\mapnik.vcxproj] mapnik_image.cpp C:\Users\Administrator\node_modules\node-mapnik\node_modules\mapnik-vector-tile \src\mapnik3x_compatibility.hpp(4): 致命错误 C1083: 无法打开 包含文件:'mapnik/version.hpp':没有这样的文件或目录 (..\src\mapnik_map.cpp) [C:\U sers\Administrator\node_modules\node-mapnik\build\mapnik.vcxproj]
mapnik_datasource.cpp C:\Users\Administrator\node_modules\node-mapnik\node_modules\mapnik-vector-tile \src\mapnik3x_compatibility.hpp(4): 致命错误 C1083: 无法打开 包含文件:'mapnik/version.hpp':没有这样的文件或目录 (..\src\mapnik_color.cpp) [C: \Users\Administrator\node_modules\node-mapnik\build\mapnik.vcxproj]
node_mapnik.cpp ..\src\mapnik_grid_view.cpp(9):致命错误 C1083: 无法打开包含文件:'m apnik/grid/grid.hpp':没有这样的文件或 目录 [C:\Users\Administrator\node_mo dules\node-mapnik\build\mapnik.vcxproj] mapnik_projection.cpp C:\Users\Administrator\node_modules\node-mapnik\node_modules\mapnik-vector-tile \src\mapnik3x_compatibility.hpp(4): 致命错误 C1083: 无法打开 包含文件:'mapnik/version.hpp':没有这样的文件或目录 (..\src\mapnik_layer.cpp) [C: \Users\Administrator\node_modules\node-mapnik\build\mapnik.vcxproj]
mapnik_feature.cpp ..\src\mapnik_grid.cpp(9):致命错误 C1083: 无法打开包含文件:'mapnik /version.hpp':没有这样的文件或 目录 [C:\Users\Administrator\node_modules\n ode-mapnik\build\mapnik.vcxproj] mapnik_palette.cpp ..\src\mapnik_image_view.cpp(11):致命错误 C1083:无法打开 包含文件:'mapnik/color.hpp':没有这样的文件或目录 [C:\用户\管理员\node_modu les\node-mapnik\build\mapnik.vcxproj] mapnik_vector_tile.cpp c:\users\administrator\node_modules\node-mapnik\src\utils.hpp(11): 致命错误 C1083:无法打开包含文件:'mapnik/unicode.hpp':否 此类文件或目录 y (..\src\mapnik_cairo_surface.cpp) [C:\用户\管理员\node_modules\node-m apnik\build\mapnik.vcxproj] mapnik_expression.cpp
mapnik_memory_datasource.cpp ..\src\mapnik_memory_datasource.cpp(3): 致命错误 C1083:无法打开包含文件:'mapnik/version.hpp':否 这样的文件或目录 [C:\Users\Administrator\n ode_modules\node-mapnik\build\mapnik.vcxproj] c:\users\administrator\node_modules\node-mapnik\src\utils.hpp(11): 致命错误 C1083:无法打开包含文件:'mapnik/unicode.hpp':否 此类文件或目录 y (..\src\mapnik_feature.cpp) [C:\Users\Administrator\node_modules\node-mapnik\ build\mapnik.vcxproj] ..\src\mapnik_image.cpp(7):致命错误 C1083: 无法打开包含文件:'mapni k/color.hpp':没有这样的文件或 目录 [C:\Users\Administrator\node_modules\no de-mapnik\build\mapnik.vcxproj] C:\Users\Administrator\node_modules\node-mapnik\node_modules\mapnik-vector-tile \src\mapnik3x_compatibility.hpp(4): 致命错误 C1083: 无法打开 包含文件:'mapnik/version.hpp':没有这样的文件或目录 (..\src\mapnik_datasource.cpp ) [C:\Users\Administrator\node_modules\node-mapnik\build\mapnik.vcxproj] C:\Users\Administrator\node_modules\node-mapnik\node_modules\mapnik-vector-tile \src\mapnik3x_compatibility.hpp(4): 致命错误 C1083: 无法打开 包含文件:'mapnik/version.hpp':没有这样的文件或目录 (..\src\mapnik_projection.cpp) [C:\Users\Administrator\node_modules\node-mapnik\build\mapnik.vcxproj] C:\Users\Administrator\node_modules\node-mapnik\node_modules\mapnik-vector-tile \src\mapnik3x_compatibility.hpp(4): 致命错误 C1083: 无法打开 包含文件:'mapnik/version.hpp':没有这样的文件或目录 (..\src\mapnik_palette.cpp) [ C:\Users\Administrator\node_modules\node-mapnik\build\mapnik.vcxproj] C:\Users\Administrator\node_modules\node-mapnik\node_modules\mapnik-vector-tile \src\mapnik3x_compatibility.hpp(4): 致命错误 C1083: 无法打开 包含文件:'mapnik/version.hpp':没有这样的文件或目录 (..\src\node_mapnik.cpp) [C:\ 用户\管理员\node_modules\node-mapnik\build\mapnik.vcxproj] c:\users\administrator\node_modules\node-mapnik\src\utils.hpp(11): 致命错误 C1083:无法打开包含文件:'mapnik/unicode.hpp':否 此类文件或目录 y (..\src\mapnik_vector_tile.cpp) [C:\Users\Administrator\node_modules\node-map nik\build\mapnik.vcxproj]

【问题讨论】:

标签: windows node.js gis mapnik


【解决方案1】:

node-mapnik 现在附带 Windows 二进制文件,因此不需要上述步骤。详情请见https://github.com/mapnik/node-mapnik#installing

【讨论】: