can't import gdal in python?

Question:

I have gdal installed and running on Ubuntu Jaunty but I can’t run gdal2tiles because I get the error:

Traceback (most recent call last):
  File "/usr/local/bin/gdal2tiles.py", line 42, in <module>
    import gdal
ImportError: No module named gdal

When I open python and type import gdal I get the same error.

I’ve set LD_LIBRARY_PATH (without spaces!) to /usr/local/lib but it doesn’t seem to have made any difference.

Looks like Python can’t find gdal. Can anyone help?

Thanks!

Asked By: AP257

||

Answers:

Ith seems to be a “Python Path” issue.  Python libraries are looked-up within a defined path. Try

import sys
sys.path

If the directory where the gdal.py and related files is not in this list, then Python cannot find it. That’s for the “diagnostics” part. To fix the situation, you have several options… They all hinge on knowing the rules which Python uses to build this path.

  • The PYTHONPATH environement variable can be altered to include the desired path
  • Python can be started from the directory where the desired library resides.
  • sys.path can be dynamically altered, with sys.path.append(“/SomePath/To/MyStuff”)

The only place where I’ve seen the rules pertaining to the building of sys.path formerly described, within the “official” Python documentation, is in the tutorial, at section 6.1.2
Excerpt:

modules are searched in the list of directories given by the variable sys.path
which is initialized from the directory containing the input script (or the 
current directory), PYTHONPATH and the installation- dependent default. This
allows Python programs that know what they’re doing to modify or replace the
module search path. Note that because the directory containing the script being
run is on the search path, it is important that the script not have the same name
as a standard module, or Python will attempt to load the script as a module when
that module is imported. This will generally be an error. See section
Standard Modules for more information.
Answered By: mjv

I met the same problem as well. But I found it might because the package name is not as same as "gdal".

I installed gdal in my anaconda environment using command "conda install -c conda-forge gdal",

then I tried importing gdal by python scripts "import gdal" or "from osgeo import gdal". Didn’t work.

I look into the address of this package "…/anaconda3/envs/(environment name)/lib/python3.7/site-packages", and copied the original package directory, and changed the name from "GDAL-3.4.1-py3.7-linux-x86_64.egg-info" to "gdal".
change package name

Then I found it worked. I succeed in importing gdal by just "import gdal".

Answered By: Juezhu Long
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.