id,summary,reporter,owner,description,type,status,priority,milestone,component,version,severity,resolution,keywords,cc 7044,_gdal_array import error when bundled with pyinstaller,dhoese,hobu,"The change described in the following ticket #6801 causes an import error when bundled with the tool pyinstaller. Pyinstaller allows a user to bundle a python script and all of its dependencies in to a single directory or installer. {{{ Traceback (most recent call last): File ""test.py"", line 2, in from osgeo import gdal_array File ""/Users/davidh/repos/git/pyinstaller/PyInstaller/loader/pyimod03_importers.py"", line 631, in exec_module exec(bytecode, module.__dict__) File ""site-packages/osgeo/gdal_array.py"", line 164, in ImportError: cannot import name '_gdal_array' }}} See https://github.com/pyinstaller/pyinstaller/issues/2829 for more details. From what I can tell the import referenced in #6801 is redundant given the swig import helper stuff on the top of the gdal_array.py module. If I switch the import back to ""import _gdal_array"", my bundled pyinstaller package works. If I remove that import line, it also works. None of the other GDAL SWIG modules (_gdalconst.so, _gdal.so, _ogr.so, etc) seem to have this issue since they don't have the repeated import in the middle of the module. I can see why the ""from . import _gdal_array"" is the correct way of importing something from the current subpackage (osgeo) and I'm not super familiar with standard practice with SWIG so I can understand a ""no fix"" on this. I do have a workaround I can implement for pyinstaller, but the only reason it seems to be needed is because gdal_array.py does its import differently than other SWIG modules.",defect,closed,normal,,PythonBindings,unspecified,normal,fixed,,