我安装了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,但这也不起作用。 你有什么建议吗?
答案 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中。在此问题得到解决之前,我找到了两个解决方法:
创建directoy /usr/lib64/python2.7/site-packages/mpl_toolkits/basemap/data并将/ usr / share / basemap中的数据复制到该新目录中,或
编辑文件pyproj.py并更改行
pyproj_datadir = os.sep.join([os.path.dirname(__file__), 'data'])
到
pyproj_datadir = '/usr/share/basemap'