Python底图模块无法导入

时间:2016-11-02 07:25:28

标签: python matplotlib import matplotlib-basemap

我在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提供了一个路径列表,我确定目录&#34; basemap&#34;是,在&#34; mpl_toolkits&#34;目录。 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说明),但它没有改变任何内容:我无法导入底图。

感谢您的帮助

14 个答案:

答案 0 :(得分:16)

我遇到了这个问题,我能够使用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

答案 1 :(得分:15)

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

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

答案 2 :(得分:6)

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

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

答案 3 :(得分:1)

here下载并手动安装。确保下载正确的版本(例如,如果您使用的是Python3.6,则下载 basemap‑1.2.0‑cp36‑cp36m‑win_amd64.whl

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

答案 4 :(得分:1)

我不使用Anaconda,而是使用MacOS,并且我发现此解决方案适用于我。我想这很简单,应该可以在Linux和MacO上使用。

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

答案 5 :(得分:1)

唯一适用于 Windows 的解决方案。

从这里下载车轮包:https://www.lfd.uci.edu/~gohlke/pythonlibs/#basemap 导航到终端中的下载位置。 使用 pip install

安装

答案 6 :(得分:0)

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

  1. 创建底图(git clone --depth 1 git@github.com:matplotlib/basemap.git)的浅表克隆或提取当前版本的tarball。
  2. 安装必要的必备库(在Ubuntu,libgeos-devlibproj-devlibgeos++-devproj-dataproj-binlibgeos-c1v5,{{ 1}},libgeos,我认为)。
  3. libproj12(实际上不确定是否需要pip install --user pyproj matplotlib geos)。

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

所以,我做了

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 的示例。

答案 7 :(得分:0)

我遵循了这个答案:

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

尽管如此,我可能错误地安装了mpl_toolkits(或者我不知道),就我而言,我发现底图位于像这样的pymodules中:

/soap:Envelope/soap:Body/GetInvoiceResult

所以这对我来说适用于Ubuntu 14.04 LTS。

答案 8 :(得分:0)

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

  

conda安装底图

(pip不再具有底图包)

OR

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

  

易于安装python3-mpltoolkits.basemap

答案 9 :(得分:0)

conda install -c anaconda basemap

OR

转到Anaconda Navigator,搜索basemap,然后单击应用

Anaconda Navigator Screenshot

enter image description here

答案 10 :(得分:0)

以我为例

sudo apt install python3-mpltoolkits.basemap

答案 11 :(得分:0)

经过一天的尝试不同的方法,这对我有用:

a = {'text': 'hello'}
b = a
a['text'] = 'bye'
print(b['text']) # prints 'bye'

答案 12 :(得分:0)

我遇到了同样的问题。无法导入底图:

from mpl_toolkits.basemap import Basemap

但令人惊讶的是 Pycharm 看到了显然安装在这个位置的库:

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

所以,为了使它工作,我刚刚在 lib/python3.8/site-packages/mpl_toolkits/ 中创建了一个符号链接:

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

我知道这不是一个干净的解决方案,但在某些情况下可能就足够了。

答案 13 :(得分:-1)

您可能还需要安装setuptools。这允许mpl_toolkits成为可以跨越多个目录的命名空间包(即matplotlib和底图&#39;)。