2014-09-24 6 views
0

osgeo에서 가져 오기가 포함 된 Python 스크립트를 고정하려고했지만 실행 파일이 ImportError: No module named '_gdal'으로 실패합니다.Python 3 스크립트를 종료 한 후 GDAL 가져 오기 오류

난 그냥 한 줄에 내 스크립트를 제거했습니다

import osgeo

파이썬에서 실행 (버전 3.3.3)은 건강이다. 나는 cx_Freeze와 py2exe로 얼어 붙이려고 노력했다. 둘 다 누락 된 모듈이 있다고보고합니다 (다른 것들 중에서) ? _gdal imported from osgeo이지만 스크립트를 성공적으로 정지시킵니다. 그럼 exe는 위의 ImportError와 함께 실패합니다.

_gdal을 파이썬으로 가져 오려고했는데 제대로 작동합니다. 고정 옵션에서 osgeo 모듈을 수동으로 시도했지만 여전히 동일한 오류가 발생합니다.

가 여기에 비슷한 질문 : Importing GDAL with cx_Freeze, Python3.4 이 있지만 py2exe에도 함께 발생하기 때문에 어쩌면 이것은 나 cx_Freeze의 문제가되지 않습니다 (지금 파이썬 3에 대한 실험적인 지원을하고있다).

아무도이 문제를 해결하는 방법을 알고 있습니까?

+0

같은 질문이 문제는 마지막 사람에게 물었습니다 : 파이썬 프롬프트에서'import _gdal'과'print (_gdal)'을한다면, 무엇을 보여줄까요? –

+0

먼저'osgeo'를 가져 오지 않으면 @ThomasK가'_gdal'을 가져 오지 못합니다. 'print (_gdal)'명령은 'C : \\ Python33 \\ lib \\ site-packages \\ osgeo \\ _ gdal.pyd'>'을 인쇄합니다. –

+0

오, swig가 있습니다. 재미있는 일을하고 있어요. 'C : \ Python33 \ lib \ site-packages \ osgeo \ __ init __. py'로 가서'import _gdal'에서'from '까지 13 행 (ish)을 편집하십시오. _gdal'을 가져온 다음 다시 고정하십시오. 여기에 파일이 있습니다. https://gist.github.com/takluyver/ac036f733c6f79342780 –

답변

1

해결되었습니다. osgeo\__init__.py 파일을 편집하고 13 행을 다음과 같이 수정했습니다. import osgeo._gdal. 이 작업은 동결 할 때 모듈 osgeo._gdal이 수동으로 포함 된 경우에만 작동합니다. @ 토마스 K 귀하의 솔루션은 내가 생각하는 것과 똑같은 일을합니다. 이들은 (import osgeo._ogrimport osgeo._osr 각각)을 필요로하는 경우와 동일한 변형이 osgeo.ogr (라인 18) 및 osgeo.osr (라인 (18)) 모듈에 모두 적용해야한다는

참고. 이는 동결시 수동으로 포함되어야 함을 의미합니다. 내 얼어 붙은 명령은 이제 다음과 같습니다 : python cxfreeze.py module1.py --include-modules=osgeo._gdal,osgeo._ogr,osgeo._osr.

감사합니다. @Thomas K에게 도움을 요청합니다.

+0

여러분을 환영합니다. SWIG에 대해 다음과 같은 문제가 있습니다. https://github.com/swig/swig/issues/145 –

관련 문제