簡體   English   中英

凍結Python 3腳本后GDAL導入錯誤

[英]GDAL Import Error after freezing Python 3 script

我試圖凍結包含從osgeo導入的Python腳本,但是可執行文件失敗,並出現ImportError: No module named '_gdal'

我已將腳本精簡為一行:

import osgeo

在Python(版本3.3.3)中運行時,一切都很好。 我試着用cx_Freeze和py2exe凍結。 這兩個報告是有缺失的模塊: ? _gdal imported from osgeo ? _gdal imported from osgeo (以及其他),但成功凍結了腳本。 然后該exe失敗,並出現上述ImportError。

我試過在python中導入_gdal ,並且可以正常工作。 我嘗試在凍結選項中手動包含osgeo模塊,但仍然遇到相同的錯誤。

這里有一個類似的問題: 用cx_Freeze,Python3.4導入GDAL,但這也許不是cx_freeze問題,因為py2exe也發生了此問題(它現在對python 3進行了實驗性支持)。

有人知道如何解決此問題嗎?

我找到了解決方法。 我編輯了osgeo\\__init__.py文件,並修改了第13行,如下所示:import osgeo._gdal 這僅在凍結時手動包含模塊osgeo._gdal時有效。 @Thomas K我猜你的解決方案做同樣的事情。

請注意,如果需要,必須在osgeo.ogr (第18行)和osgeo.osr (第18行)模塊上都進行相同的修改(分別import osgeo._ogrimport osgeo._osr )。 這意味着在凍結時也必須手動添加它們。 我的凍結命令現在看起來像這樣: python cxfreeze.py module1.py --include-modules=osgeo._gdal,osgeo._ogr,osgeo._osr

感謝@Thomas K的幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM