通过Macports安装matplotlib basemap后,basemap的示例python代码未运行

通过Macports安装matplotlib basemap后,basemap的示例python代码未运行,python,numpy,matplotlib,scipy,Python,Numpy,Matplotlib,Scipy,我正在使用MacOSX10.6.8。我在中使用二进制安装程序安装了Python 2.6。自2011年3月以来,我一直将其与SciPy和Matplotlib一起用于我的科学计算需求,没有任何问题。最近,我需要一个名为Basemap的matplotlib库 我继续关注这篇文章。它指出,安装Basemap库的最简单方法是通过Macports(或Fink)。所以我尝试通过Macports安装Basemap。我执行了命令 port install py-matplotlib-basemap 它似乎安装了

我正在使用MacOSX10.6.8。我在中使用二进制安装程序安装了Python 2.6。自2011年3月以来,我一直将其与SciPy和Matplotlib一起用于我的科学计算需求,没有任何问题。最近,我需要一个名为Basemap的matplotlib库

我继续关注这篇文章。它指出,安装Basemap库的最简单方法是通过Macports(或Fink)。所以我尝试通过Macports安装Basemap。我执行了命令

port install py-matplotlib-basemap
它似乎安装了很多东西,比如Python2.4等等。具体来说,我再次使用了Macports,但这次使用了

port install py26-matplotlib-basemap 
因为我使用的是Python 2.6。安装似乎没有任何问题

现在,我通过运行一个使用Basemap绘制图形的Python代码示例来测试Basemap是否正确安装。但终端在返回提示之前会显示以下内容:

Traceback (most recent call last):
File "basemap-test.py", line 1, in <module>
from mpl_toolkits.basemap import basemap
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/mpl_toolkits/basemap/__init__.py", line 45, in <module>
import _geoslib, netcdftime
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/_geoslib.so, 2): Symbol not found: _GEOSArea
Referenced from: /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/_geoslib.so
Expected in: dynamic lookup
回溯(最近一次呼叫最后一次):
文件“basemap test.py”,第1行,在
从mpl_toolkits.basemap导入basemap
文件“/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site packages/mpl_toolkit/basemap/_init__.py”,第45行,在
导入_geoslib,netcdftime
ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages//\u geoslib.so,2):未找到符号:\u GEOSArea
引用自:/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages//u geoslib.so
应为:动态查找

这里可能出了什么问题?我知道Macports安装了自己的Python版本,我不知道这是否会对这个问题产生影响。

正如您所指出的,Macports安装了自己的Python版本(默认情况下,位于
/opt/local/bin/python2.6
)。如果通过MacPorts(如basemap)安装Python包,通常需要在MacPorts Python下运行所有内容。不要尝试混合和匹配Python实例。包含C扩展模块或依赖于包含C库的其他包的包的构建方式必须与Python解释器的构建方式兼容。org上的Python2.6安装程序仅为32位,其构建目的是与一系列OS X版本兼容。默认情况下,MacPorts在10.6上构建的将是64位的(如果可能的话),并且仅为10.6系统定制。从长远来看,最安全、最简单的选择是切换到使用MacPorts Python,确保您需要的所有软件包都是从MacPorts安装的。

如您所述,MacPorts安装自己的Python版本(默认情况下,位于
/opt/local/bin/python2.6
)。如果通过MacPorts(如basemap)安装Python包,通常需要在MacPorts Python下运行所有内容。不要尝试混合和匹配Python实例。包含C扩展模块或依赖于包含C库的其他包的包的构建方式必须与Python解释器的构建方式兼容。org上的Python2.6安装程序仅为32位,其构建目的是与一系列OS X版本兼容。默认情况下,MacPorts在10.6上构建的将是64位的(如果可能的话),并且仅为10.6系统定制。从长远来看,最安全、最简单的选择是切换到使用MacPorts Python,确保您需要的所有软件包都是从MacPorts安装的。

请注意:如果您在此处没有得到答案,您可能需要尝试matplotlib邮件列表。请注意:如果您在此处没有得到答案,您可能需要尝试matplotlib邮件列表。