Python basemap module impossible to import

I have troubles to import the basemap module of mpl_toolkits in python. Here is what I get when I run the test.py script from the module directory:

/usr/lib/python2.7/dist-packages/mpl_toolkits/basemap$ python test.py
Traceback (most recent call last):
File "test.py", line 1, in <module>
from mpl_toolkits.basemap import Basemap, shiftgrid
ImportError: No module named basemap

I can’t get it since sys.path gives a list of paths where I am sure the directory “basemap” is, in the “mpl_toolkits” directory. There is no problem to import mpl_toolkits. Here is a thing I tried, to manually add the path, and the result:

>>> import sys
>>> sys.path.append('/usr/lib/python2.7/dist-packages/mpl_toolkits/basemap')
>>> import basemap
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "basemap/__init__.py", line 30, in <module>
from mpl_toolkits.basemap import pyproj
ImportError: No module named basemap

I tried to uninstall an reinstall basemap from source (carefully following these instructions), from apt-get, from conda, but it does not change anything: I can’t import basemap.

Thank you for your help

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

I was in the same situation until a minute ago, installing it through this made the trick:

sudo apt-get install libgeos-3.5.0
sudo apt-get install libgeos-dev
pip install https://github.com/matplotlib/basemap/archive/master.zip

Method 2

I was facing this issue and I was able to solve it using anaconda

After activating my profile

source activate MyProfileName
conda install basemap

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
# setup Lambert Conformal basemap.
# set resolution=None to skip processing of boundary datasets.
m = Basemap(width=12000000,height=9000000,projection='lcc',
            resolution=None,lat_1=45.,lat_2=55,lat_0=50,lon_0=-107.)
m.bluemarble()
plt.show()

BlueMarble format of basemap

Method 3

I do not use Anaconda, using MacOS, and I have found this solution works for me. I guess it is straight forward, and should work with both Linux and MacOs.

https://stackoverflow.com/a/53171723/2570842

brew install geos
pip3 install https://github.com/matplotlib/basemap/archive/master.zip

For Ubuntu,

sudo apt-get install geos
sudo pip3 install https://github.com/matplotlib/basemap/archive/master.zip

Method 4

I had the same issue; trying to access basemap using sys would produce that error. But this worked for me:

import mpl_toolkits
mpl_toolkits.__path__.append('/usr/lib/python2.7/dist-packages/mpl_toolkits/')
from mpl_toolkits.basemap import Basemap

Method 5

Download it from here and install it manually. Make sure to download the right version(i.e. if you are Python3.6 then download basemap‑1.2.0‑cp36‑cp36m‑win_amd64.whl)

Reference: https://stackoverflow.com/a/33020524/8730201

Method 6

For me, a simple

pip3 install basemap

did the trick.

Method 7

conda install -c anaconda basemap

OR

Go to Anaconda Navigator, search for basemap and click Apply.

Anaconda Navigator Screenshot

enter image description here

Method 8

In my Case It works

sudo apt install python3-mpltoolkits.basemap

Method 9

I followed this answer:

https://stackoverflow.com/a/43234894/3818277

Though, I can have wrongly installed mpl_toolkits (or I do not know), in my case I found out, that basemap is located in pymodules like that:

    mpl_toolkits.__path__.append('/usr/lib/pymodules/python2.7/mpl_toolkits/')
    from mpl_toolkits.basemap import Basemap

So this worked for me on ubuntu 14.04 LTS.

Method 10

After a day of trying different methods, this worked for me:

conda install -c conda-forge basemap

Method 11

The only solution that worked for windows.

Download wheel package from here: https://www.lfd.uci.edu/~gohlke/pythonlibs/#basemap
Navigate to download location in terminal.
Install using pip install

Method 12

I was able to get basemap working through the following steps. Note that I did a --user install.

  1. Create shallow clone of basemap (git clone --depth 1 [email protected]:matplotlib/basemap.git) or extract the tarball of the current version.
  2. Install the necessary prerequisite libraries (on Ubuntu, libgeos-dev, libproj-dev, libgeos++-dev, proj-data, proj-bin, libgeos-c1v5, libgeos, libproj12, I think).
  3. pip install --user pyproj matplotlib geos (not actually sure if geos is necessary).

Now, here’s where I had to improvise a little bit. When I install basemap using python setup.py install, it creates a new egg directory among my Python packages. That directory contains an mpl_toolkits subdirectory which duplicates a separate mpl_toolkits directory installed by matplotlib.

So, instead, I did

python setup.py build_ext --inplace
cp -a lib/mpl_toolkits/basemap /my/python/packages/dir/mpl_toolkits/basemap
cp lib/_geoslib.so /my/python/packages/dir

I am now able to run examples like simpletest.py.

Method 13

I faced the same problem. Couldn’t import the Basemap:

from mpl_toolkits.basemap import Basemap

but surprisingly Pycharm saw the library which was apparently installed in this location:

lib/python3.8/site-packages/basemap-1.2.1-py3.8-linux-x86_64.egg/mpl_toolkits/basemap/

So, to make it work, I just created a symbolic link in lib/python3.8/site-packages/mpl_toolkits/:

ln -s ../basemap-1.2.1-py3.8-linux-x86_64.egg/mpl_toolkits/basemap/ basemap

I know it’s not a clean solution, but may be sufficient in some cases.

Method 14

On Colab you might have to add the basemap module to mpl_toolkits

!pip install basemap
from mpl_toolkits import basemap

At least, I had the same problem and this worked for me.

Method 15

For Windows:

To install basemap you need to download the wheel file from this path:

https://www.lfd.uci.edu/~gohlke/pythonlibs/#basemap

for python 3.10 this will be the file:

basemap‑1.3.2‑cp310‑cp310‑win_amd64.whl

Then you have to go to the folder where the above mentioned .whl file is saved and run this command from there:

pip install basemap‑1.3.2‑cp310‑cp310‑win_amd64.whl


For Mac OS please refer:

https://github.com/matplotlib/basemap/releases:

Make sure you have:

brew install geos
brew install matplotlib
brew install numpy
brew install proj

Add export GEOS_DIR="/user/local/Cellar/geos/3.10.2/" to your .bash profile and reload it via:

source ~/.bash_profile

git clone --depth 1 https://github.com/matplotlib/basemap.git

then in the basemap/packages/basemap directory

pip3 install


For Colab there are slight variation from Akima’s answer since its been a while:

!sudo apt-get install libgeos-3.6.2
!sudo apt-get install libgeos-dev
!pip install git+https://github.com/matplotlib/basemap#subdirectory=packages/basemap

Python basemap module impossible to import

Python basemap module impossible to import

Method 16

This will help you :

!pip install basemap
!pip install basemap-data

you can check this notebook for more information:

for more examples of machine learning algorithms please visit:

Method 17

If you’re using Anaconda, it has a package for basemap

conda install basemap

(pip doesn’t have the basemap package any more)

OR

If you using Ubuntu system you can try

apt install python3-mpltoolkits.basemap

Method 18

I had trouble with that. Fortunately, I solved the problem. Firstly, I suggest you to set Anaconda up, if you don’t have. Then follow steps below;

  • Create a new environment in anaconda.
  • Install Jupyter Notebook and launch it. If it works, turn it off.
  • Change your anaconda environment in your terminal.
  • Try installation commands below;
    conda install basemap
    conda install forge …
    pip install basemap


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x