Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

can't import gdal in python?

Tags:

python

gdal

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!

like image 955
AP257 Avatar asked Oct 08 '09 15:10

AP257


People also ask

Is GDAL included in Anaconda?

If you're using Anaconda3, the easiest way to install GDAL is to create a virtual environment through Anaconda Navigator, choosing Python 3.6 as the preferred version. Then, choose gdal from the list of uninstalled Python packages. This will install gdal version 2.1.


1 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.
like image 95
mjv Avatar answered Sep 21 '22 05:09

mjv