我对此很陌生(昨天之前甚至没有使用过终端),但我正在尝试按照 Bjorn Sandvik 在http://blog.thematicmapping.org/2012/07/terrain-mapping的说明进行一些地形映射-with-mapnik.html。我已经按照我能理解的各自网站上的说明安装了 python 和 mapnik,但是当我尝试在终端中通过 python 导入 mapnik 时,我得到了 ImportError。谁能告诉我如何解决这个问题?在我看来它正在调用不同版本的 python(如果我只是在终端中键入 python 而不是 /usr/local/bin/python 它返回 2.6),但我不知道该怎么做或我去了哪里安装过程出错。我在 Mac OSX 10.6、64 位上。
$ mapnik-config -v
2.2.0
$ /usr/local/bin/python
Python 2.7.6 (v2.7.6:3a1db0d2747e, Nov 10 2013, 00:42:54)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import mapnik
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.6/site-packages/mapnik/__init__.py", line 69, in <module> from _mapnik import *
ImportError: dlopen(/usr/local/lib/python2.6/site-packages/mapnik/_mapnik.so, 2): Symbol not found: __tlv_bootstrap
Referenced from: /usr/local/lib/libmapnik.dylib
Expected in: /usr/lib/libSystem.B.dylib
in /usr/local/lib/libmapnik.dylib
>>>
更新:希望它会有所帮助(因为我一直计划这样做),我将我的操作系统升级到小牛,按照此处的说明从 python.org 卸载了我的所有 Python 版本:如何卸载 Python 2.7 Mac OS X 10.6.4?,然后安装当前版本的 Xcode(如果没有在 Apple 为 OSX 10.6.8 支付 99 美元的开发人员帐户,它就无法使用),再次运行 William 下面列出的命令来安装 homebrew、Python 和 mapnik,并尝试“导入” mapnik' 再次在 Python 中。仍然没有工作,但我现在有不同的错误消息。
python
Python 2.7.5 (default, Aug 25 2013, 00:04:04)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import mapnik
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named mapnik
>>>
我跑了 brew doctor ,这次警告少得多,似乎没有什么令人惊讶的。我确实接受了 brew 医生的建议,并尝试使用他们推荐的代码重置我的 PATH:
echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile
那也没有帮助。我的工作目录现在是 Macintosh:bin home_directory$。
在 Python 安装结束时我还注意到一个错误:
Error: Permission denied - /usr/local/lib/python2.7/site-packages/sitecustomize.py
此消息在 mapnik 安装结束时重新出现。也许这些都没有正确安装?当我执行 mapnik-config -v 时,它显示 2.2.0。当我执行 python --version 时,它显示 2.7.5。当我查看 /usr/local/bin 时,我可以看到这些文件:mapnik-config、mapnik-speed-check。当我查看 /usr/bin 时,我没有看到任何 mapnik 文件。
更新 2:成功了!我只需要在 mapnik README.txt 文件中重新执行“启用 python 绑定”操作(我首先重置到我的主目录,不确定这是否重要)。这:
py_version=$(python -c "import sys;print('%s.%s' % (sys.version_info[0],sys.version_info[1]))")
export PYTHONPATH=/usr/local/lib/python${py_version}/site-packages/:$PYTHONPATH
似乎正在工作。现在我只需要修复我的 mapnik 代码就可以了!非常感谢评论的人。我没有足够的“声誉”来投票威廉的帖子,所以如果有人能做到这一点,将不胜感激!