Python Basemap模块无法导入。

47

我在Python中导入mpl_toolkits的basemap模块时遇到了麻烦。当我运行模块目录下的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”目录中的路径列表,因此我无法理解。导入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
我尝试从源代码中卸载并重新安装basemap(仔细遵循这些指示),从apt-get,从conda,但没有改变任何内容:我无法导入basemap。
谢谢你的帮助。

你在哪个环境中安装了这个模块? - eshwar m
1
你解决了吗?我也遇到了同样的问题。 - GStav
18个回答

48
我之前也处于相同的情况,直到一分钟前通过以下方法安装成功:
sudo apt-get install libgeos-3.5.0
sudo apt-get install libgeos-dev
pip install https://github.com/matplotlib/basemap/archive/master.zip

11
我搜索了所有能找到的信息并尝试了各种方法,以使 'from mpl_toolkits.basemap import Basemap' 能够正常工作,你的答案是唯一对我有效的。我使用的是 Python 3.6 版本,只需运行 pip install 命令即可。无论如何,谢谢! - CodeGuyRoss
有一些其他的解决方案可以在Stackoverflow上找到,但这可能是唯一适用于Google Colab平台的解决方案。因此,这个解决方案非常有用。 - Calcutta
我实际上并不明白为什么这应该与在存储库的浅克隆中运行 python setup.py buildsudo python setup.py install 有任何不同。有什么魔法调料吗?是特定版本的libgeos吗? - Translunar
1
您是最有价值的玩家。虽然这是三年后的事情,但我不得不将 libgeos-3.5.0 更改为 libgeos-3.6.2 - compuphys
这给了我一个错误:E: 无法定位软件包libgeos-3.5.0 E: 找不到任何与glob 'libgeos-3.5.0'匹配的软件包 E: 找不到任何与regex 'libgeos-3.5.0'匹配的软件包 - zabop
显示剩余2条评论

35

我曾面临这个问题,但是使用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()

蓝色大理石格式的基础地图


18

我不使用Anaconda,而是使用MacOS,我发现这个解决方案对我有效。我想这很直接,应该适用于Linux和MacOS。

https://dev59.com/mVgQ5IYBdhLWcg3wvGYY#53171723

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

对于RHEL/Centos7,这个方法对我来说并没有完全奏效。成功的方法是:sudo yum -y install geos-devel; wget https://github.com/matplotlib/basemap/archive/refs/heads/master.zip; unzip master.zip; cd basemap-master/packages/basemap; python -m pip install .;测试命令:python -c "from mpl_toolkits.basemap import Basemap" - Prachi

12

我也遇到了同样的问题,试图使用sys访问底图会产生错误。但是这对我有用:

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

7
当你遇到问题时,人们只是说“将UNKNOWN REPOSITORY添加到你的受信任源并安装xyz”,却忽视了你的问题,我很讨厌这种情况。这不是真正的解决方案,而是一种肮脏的权宜之计(甚至是被接受的答案,哈哈)。我不确定问题的原因,但这个方法似乎能够从根本上解决问题。谢谢! - user3182532
这似乎应该是解决方案。吸取教训 - 往下滚动以查看所有答案!刚刚浪费了大约30分钟查看其他变通方法 :( - undefined

10

我认为,一个简单的

pip3 install basemap

做到位了。

2
是的,在Windows环境下对我也起作用了!只需要简单的“pip install basecamp”,然后跟着“from mpl_toolkits.basemap import Basemap”即可。 - Shahstewart
1
在我的 M1 Mac 上似乎已经起作用了。谢谢!我确实收到了有关边界数据集文件的警告,并获得了从 basemap-data-hires 包下载高分辨率和全分辨率数据集的说明。我在这里获取了它:https://pypi.org/project/basemap-data-hires/ - Dan Taninecz Miller
1
如果您已经安装了 geos 并且 pip install basemap 仍然无法正常工作,请确保您的 GEOS_DIR 环境变量指向正确的位置。在我的情况下,我通过 Homebrew 在 macOS 上安装了最新版本的 geos,这需要运行 export GEOS_DIR=/usr/local/Cellar/geos/3.11.0/(或者如果您使用 Fish,则为 set -Ux GEOS_DIR /usr/local/Cellar/geos/3.11.0/)。 - Cosmo

3

3

在我的情况下,它有效。

sudo apt install python3-mpltoolkits.basemap


3

conda install -c anaconda basemap

或者

打开 Anaconda Navigator,搜索 basemap,然后点击 Apply 按钮。

Anaconda Navigator Screenshot

enter image description here


2
这将帮助您:
!pip install basemap
!pip install basemap-data

你可以查看笔记本获取更多信息:
要了解更多机器学习算法的示例,请访问

1

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

conda install -c conda-forge basemap

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接