Я пытаюсь заморозить скрипт Python, содержащий импорт из osgeo
, но исполняемый файл не работает с ImportError: No module named '_gdal'
.Ошибка импорта GDAL после замораживания скрипта Python 3
Я урезанная мой сценарий только одну строку:
import osgeo
При работе в Python (версия 3.3.3) все хорошо. Я пробовал замораживать cx_Freeze и py2exe. Оба сообщают, что отсутствует модуль: ? _gdal imported from osgeo
(среди прочего), но успешно заморозить скрипт. Затем exe не работает с указанным ImportError.
Я попытался импортировать _gdal
в python, и он работает. Я попробовал вручную, включая модуль osgeo
, в параметрах замораживания, но все равно получаю ту же ошибку.
Существует аналогичный вопрос здесь: Importing GDAL with cx_Freeze, Python3.4 но, возможно, это не проблема cx_freeze, потому что это также происходит с py2exe (он имеет экспериментальную поддержку Python 3 сейчас).
Кто-нибудь знает, как это исправить?
Тот же вопрос Я спросил последнего человека с этой проблемой: если вы выполните 'import _gdal', а затем' print (_gdal) 'в приглашении Python, что он вам показывает? –
@ThomasK импортирует '_gdal', если я не импортирую' osgeo' в первую очередь. После того, как я это сделаю, 'print (_gdal)' prints: '' –
О, swig is делая забавные вещи. Попробуйте перейти в 'C: \ Python33 \ lib \ site-packages \ osgeo \ __ init __. Py' и отредактировать строку 13 (ish) из' import _gdal' в 'from. import _gdal', а затем снова замерзать. Вот файл, поскольку я предлагаю вам его изменить: https://gist.github.com/takluyver/ac036f733c6f79342780 –