2014-12-16 3 views
0

Я установил питон-базовую карту и питон-BaseMap-данные (и все его зависимости, например, pyproj), но я не могу импортировать Basemap в простой программе Python, из-за этой ошибки:Импорт Базовая карта терпит неудачу под Fedora 21

$ 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

Вы проверили, что установка данных случилась с правильным подкаталогом? –

ответ

1

В 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, но RPM-пакеты для питона-BaseMap-данных и python-basemap-data-hires все еще помещают данные proj в/usr/share/baseemap. Пока это не будет исправлено, я нашел два обходных пути:

  1. создать directoy /usr/lib64/python2.7/site-packages/mpl_toolkits/basemap/data и копировать данные из/USR/долей/в базовой карте что новый каталог или

  2. Редактировать файл pyproj.py и измените строку

.

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

в

pyproj_datadir = '/usr/share/basemap'  
+0

Спасибо за этот полный ответ! Решение 1) работает безупречно. Решение 2) терпит неудачу, поскольку он по-прежнему не может найти некоторые коды epsg. Будем надеяться, что исправление наступит вскоре, чтобы избежать таких обходных решений. – HyperCube

Смежные вопросы