Python底图模块无法导入

问题描述 投票:15回答:8

我在python中导入mpl_toolkits的底图模块时遇到麻烦。这是我从模块目录运行test.py脚本时得到的结果:

/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

我无法得到它,因为sys.path给出了一个路径列表,我确信目录“basemap”在“mpl_toolkits”目录中。 import mpl_toolkits没有问题。这是我尝试过的事情,手动添加路径,结果:

>>> 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

我尝试从apt-get,从conda卸载重新安装底图(仔细遵循these说明),但它没有改变任何东西:我无法导入底图。

谢谢您的帮助

python matplotlib import matplotlib-basemap
8个回答
18
投票

我正面临这个问题,我能够使用anaconda解决它

激活我的个人资料后

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


16
投票

直到一分钟前,我处于相同的情况,通过它安装它就成了诀窍:

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

6
投票

我遇到过同样的问题;尝试使用sys访问底图会产生该错误。但这对我有用:

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

1
投票

here下载并手动安装。确保下载正确的版本(即如果你是Python3.6,那么下载basemap-1.2.0-cp36-cp36m-win_amd64.whl)

参考:https://stackoverflow.com/a/33020524/8730201


1
投票

我不使用Anaconda,使用MacOS,我发现这个解决方案适合我。我想这是直截了当的,应该适用于Linux和MacOs。

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

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

对于Ubuntu,

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

0
投票

我能够通过以下步骤使底图工作。请注意,我做了--user安装。

  1. 创建底图的浅层克隆(git clone --depth 1 [email protected]:matplotlib/basemap.git)或提取当前版本的tarball。
  2. 安装必要的先决条件库(在Ubuntu,libgeos-devlibproj-devlibgeos++-devproj-dataproj-binlibgeos-c1v5libgeoslibproj12,我认为)。
  3. pip install --user pyproj matplotlib geos(实际上不确定是否需要geos)。

现在,这是我不得不即兴发挥的地方。当我使用python setup.py install安装底图时,它会在我的Python包中创建一个新的egg目录。该目录包含一个mpl_toolkits子目录,该子目录复制了matplotlib安装的单独mpl_toolkits目录。

所以,相反,我做到了

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

我现在能够运行像simpletest.py这样的例子。


0
投票

我按照这个答案:

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

虽然,我可能错误地安装了mpl_toolkits(或者我不知道),在我的情况下我发现,底图位于pymodules中:

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

所以这在ubuntu 14.04 LTS上对我有用。


0
投票

如果您使用的是Anaconda,它有一个底图包

conda安装底图

(pip不再有底图包)

要么

如果您使用Ubuntu系统,您可以尝试

apt install python3-mpltoolkits.basemap

© www.soinside.com 2019 - 2024. All rights reserved.