2014-09-29 2 views
0

Я загрузил fiona сегодня. когда я пытаюсь импортировать его в Python с помощью «импорта Фиона», я получаю следующее сообщение об ошибке:".c" файлы, называемые fiona. Как их импортировать?

Traceback (most recent call last): 
    File "<pyshell#0>", line 1, in <module> 
    import fiona 
    File "C:\Python27\lib\site-packages\fiona\__init__.py", line 72, in <module> 
    from fiona.collection import Collection, supported_drivers, vsi_path 
    File "C:\Python27\lib\site-packages\fiona\collection.py", line 7, in <module> 
    from fiona.ogrext import Iterator, ItemsIterator, KeysIterator 
ImportError: No module named ogrext 

Я проверил в моей папке сайта-пакеты, а ogrext файл «C». Я пробовал комментировать импорт, чтобы убедиться, что это не нужно, но это, конечно, забросило еще одну ошибку.

Specifically, how do I resolve this import error?

В общем случае, как разрешать ошибки, связанные с импортом файлов C в библиотеку python?

ответ

3

Вы не можете просто установить какой-либо модуль, скопировав все файлы на site-packages. Некоторые модули являются чистым Python, но есть много с расширениями, написанными на других языках (C, C++, Fortran и т. Д.), Которые необходимо скомпилировать и связать в библиотеках до их использования, а fiona - один из них. Эта компиляция может быть выполнена в несколько этапов - автором, прежде чем распространять модуль как колесо, во время процесса pip install или загрузить исходный пакет, расстегнуть/разгрузить его и запустить python setup.py install. К сожалению, Windows по умолчанию не поставляется с компилятором, поэтому вам нужно либо установить, либо настроить вашу систему для gcc или Visual Studio, либо использовать другой метод, например, предварительно скомпилированный установщик. К счастью, fiona можно приобрести в пакетах расширения Python от Christoph Gohlke для репозитория Windows here. Загрузите установщик для своей версии и битов Python, удалите папку fiona в site-packages, затем запустите программу установки. Этот сайт содержит большое количество пакетов для научных вычислений и является моим ресурсом, когда мне нужно установить новый модуль, особенно если он имеет расширения.

EDIT

При дальнейшем рассмотрении, оказывается, что fiona также требует модуль GDAL, а также six, оба из которых можно загрузить из репозитория Gohlke в. Сначала я установил только fiona (у меня уже было six), и у меня получилась ошибка DLL. Затем я установил GDAL, а import fiona работал просто отлично - я не знаком с модулем, поэтому я не проводил никаких дальнейших испытаний, но, надеюсь, все должно работать.

+0

Да, я загрузил предварительно скомпилированную версию с правильной битностью, но она по-прежнему дает мне ошибку «Ошибка DLL», ошибка. Полагаю, я скачу из источника? – Candic3

+1

@ Candic3 см. Мое редактирование выше. Похоже, что fiona также требует GDAL. Установите это, и все должно быть в порядке. – MattDMo

+0

Последняя работа, отмеченная под заголовком «EDIT», отлично работала для меня. Установлено шесть с easy_install, затем сначала fiona, затем GDAL, как из репозитория Gohlke. работает. Благодарю. :) – Jens

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