2

我在 Redhat 上设置了 TileStache 服务器,从源代码安装 Mapnik 2.2。但是,Tilestache 给了我以下错误:

Traceback (most recent call last):
  File "/usr/lib64/python2.6/site-packages/gevent/pywsgi.py", line 508, in handle_one_response
    self.run_application()
  File "/usr/lib64/python2.6/site-packages/gevent/pywsgi.py", line 494, in run_application
    self.result = self.application(self.environ, self.start_response)
  File "/usr/lib/python2.6/site-packages/TileStache/__init__.py", line 381, in __call__
    status_code, headers, content = requestHandler2(self.config, path_info, query_string, script_name)
  File "/usr/lib/python2.6/site-packages/TileStache/__init__.py", line 254, in requestHandler2
    status_code, headers, content = layer.getTileResponse(coord, extension)
  File "/usr/lib/python2.6/site-packages/TileStache/Core.py", line 414, in getTileResponse
    tile = self.render(coord, format)
  File "/usr/lib/python2.6/site-packages/TileStache/Core.py", line 500, in render
    tile = provider.renderTile(width, height, srs, coord)
  File "/usr/lib/python2.6/site-packages/TileStache/Goodies/Providers/MapnikGrid.py", line 72, in renderTile
    self.mapnik = mapnik.Map(0, 0)
NameError: global name 'mapnik' is not defined

相关信息:

  • 其他帖子建议将“import mapnik”更改为“import mapnik2 as mapnik”。但我得到了同样的错误信息。
  • 在其他帖子中来自 TileStace/Mapnik.py,但我的来自 TileStache/Goodies/Providers/MapnikGrid.py。
  • 相关文章:使用 WSGI 时 Gunicorn 失败

问题:

有谁知道这可能是什么原因造成的?提前致谢!

4

2 回答 2

1

事实证明,这个问题的根源相当普遍。未找到 libmapnik 共享库。
当我尝试从 python 控制台导入 mapnik 时,我收到了这个错误:

>>> import mapnik
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.6/site-packages/mapnik/__init__.py", line 69, in <module>
    from _mapnik import *
ImportError: libmapnik.so.2.2: cannot open shared object file: No such file or directory 

这让我在这里找到了答案: https ://github.com/mapnik/mapnik/wiki/InstallationTroubleshooting#the-libmapnik-shared-library-is-not-found

解决方案: 将 '/usr/local/lib' 添加到 '/etc/ld.so.conf' 并运行 ldconfig。

于 2014-08-22T19:00:11.863 回答
0

...使用 Mapnik 3 和 Tile Stache保持 2018 年 8 月 22 日的流量,但得到几乎相同的错误。接受的答案对我没有帮助,事实证明Mapnik Python 绑定在更新的版本中单独安装。

这里,我可以从命令行运行,简单地说:

pip install mapnik

这解决了我的问题,以便我可以运行 python 解释器并导入 mapnik。

一个潜在的警告。该 Mapnik 新闻页面提到 pip 安装使用“Python Wheels”,如果您检查链接页面,则提到您需要 pip >= 1.4。pip --version您可以在命令行上检查您的 Pip ,而我的是 pip 7.1.2。因此,对于大多数人来说,这很可能是一个无关紧要的问题。

于 2018-08-22T18:31:54.990 回答