Fedora 21下导入底图失败

时间:2014-12-16 13:25:02

标签: python numpy matplotlib matplotlib-basemap

我安装了python-basemap和python-basemap-data(及其所有依赖项,例如pyproj)但我无法在简单的Python程序中导入Basemap,因为这个错误:

$ python mapper.py
Traceback (most recent call last):
  File "mapper.py", line 4, in <module>
    from mpl_toolkits.basemap import Basemap
  File "/usr/lib64/python2.7/site-packages/mpl_toolkits/basemap/__init__.py", line 30, in <module>
    from mpl_toolkits.basemap import pyproj
  File "/usr/lib64/python2.7/site-packages/mpl_toolkits/basemap/pyproj.py", line 241, in <module>
    raise IOError(msg)
IOError: proj data directory not found. Expecting it at: /usr/lib64/python2.7/site-packages/mpl_toolkits/basemap/data

我从这里尝试了解决方案(替换代码段):Get PyInstaller to import Basemap,但这也不起作用。 你有什么建议吗?

1 个答案:

答案 0 :(得分:2)

在Fedora 20中,/ usr / lib64 / python2.7 / site-packages /mpl_toolkits / basemap / pyproj.py有一行:

pyproj_datadir = '/usr/share/basemap'

在Fedora 21中,数据目录已更改为:

pyproj_datadir = os.sep.join([os.path.dirname(__file__), 'data'])

在Fedora 21中,pyproj.py正在寻找数据 /usr/lib64/python2.7/site-packages/mpl_toolkits/basemap/data,但是python-basemap-data和python-basemap-data-hires的rpm包仍然将proj数据放在/ usr / share / basemap中。在此问题得到解决之前,我找到了两个解决方法:

  1. 创建directoy /usr/lib64/python2.7/site-packages/mpl_toolkits/basemap/data并将/ usr / share / basemap中的数据复制到该新目录中,或

  2. 编辑文件pyproj.py并更改行

  3. pyproj_datadir = os.sep.join([os.path.dirname(__file__), 'data'])
    

    pyproj_datadir = '/usr/share/basemap'