我有一个python脚本,我想用pyinstaller打包。它使用osgeo.ogr和osgeo.osr。使用基本构建命令(python pyinstaller.py --onefile c:\path\to\my\file.py
),它创建spec文件和exe。当我运行exe时,我收到以下错误:
File "c:\Programming\Python\pyinstaller-2.0\PyInstaller\loader\iu.py", line 409, in importHook
raise ImportError("No module named %s" % fqname)
ImportError: No module named _gdal
在osgeo包中找到了 _gdal
(我可以使用import osgeo._gdal
导入它)。我尝试为其创建一个钩子(尝试hook-_gdal.py
,hook-osgeo._gdal.py
,hook-_gdal.osgeo.py
),使用单行hiddenimports = ['osgeo._gdal']
(也尝试hiddenimports = ['_gdal']
)。每当我将规范文件的路径添加为hookspath='c:\\Programming\\Python\\pyinstaller-2.0\hooks'
时,我在尝试构建它时会出现以下错误(无论目录中有什么):
File "c:\Programming\Python\pyinstaller-2.0\PyInstaller\hooks\hook-site.py", line 37, in hook
new_code_object = PyInstaller.utils.misc.get_code_object(fake_file)
AttributeError: 'module' object has no attribute 'utils'
显然我在这里犯了很多错误,但我无法弄清楚在哪里。有人可以帮忙吗?