冻结python3脚本后GDAL导入错误

2024-09-27 17:42:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图冻结一个Python脚本,该脚本包含来自osgeo的导入,但可执行文件失败,并返回ImportError: No module named '_gdal'。在

我把我的剧本精简成一行:

import osgeo

在Python(版本3.3.3)中运行时,一切正常。我试过用冷冻水和冰激凌冷冻。两个都报告缺少模块:? _gdal imported from osgeo(以及其他模块),但成功地冻结了脚本。然后exe因上述ImportError而失败。在

我尝试过在python中导入_gdal,而且它很有效。我尝试手动将osgeo模块包含在冻结选项中,但仍然得到相同的错误。在

这里有一个类似的问题: Importing GDAL with cx_Freeze, Python3.4 但这可能不是cx2ex冻结的问题,因为py2exe也会发生这种情况(它现在已经对python3提供了实验支持)。在

有人知道怎么解决这个问题吗?在


Tags: 模块noimport版本脚本可执行文件报告精简
1条回答
网友
1楼 · 发布于 2024-09-27 17:42:09

我找到了解决办法。我编辑了osgeo\__init__.py文件,并修改了第13行,如下所示:import osgeo._gdal。这是可行的,但只有当模块osgeo.\ gdal被手动包括在冻结时。@我猜你的解决方案也有同样的效果。在

注意,如果需要的话,必须在osgeo.ogr(第18行)和{}(第18行)模块中应用相同的修改(import osgeo._ogr和{})。这意味着冻结时也必须手动包括这些。我的冻结命令现在看起来像这样:python cxfreeze.py module1.py include-modules=osgeo._gdal,osgeo._ogr,osgeo._osr。在

谢谢@Thomas K的帮助。在

相关问题 更多 >

    热门问题