Python 底图模块无法导入

Posted

技术标签:

【中文标题】Python 底图模块无法导入【英文标题】:Python basemap module impossible to import 【发布时间】:2017-03-15 10:34:17 【问题描述】:

我在 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 在“mpl_toolkits”目录中给出了我确定目录“basemap”所在的路径列表。 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

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

感谢您的帮助

【问题讨论】:

你是在哪个环境下安装的? 你解决了吗?我也面临同样的问题 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

【参考方案3】:

直到一分钟前我都处于同样的情况,通过这个安装它就成功了:

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

【讨论】:

我在谷歌上搜索并尝试了所有我能得到的“从 mpl_toolkits.basemap 导入底图”来实际工作,而您的答案是唯一对我来说成功的答案。我使用的是 python 3.6,我只需要运行 pip install 行。无论如何,谢谢! *** 中还有一些其他解决方案可以解决这个问题,但这可能是唯一适用于 Google 的 Colab 平台的解决方案。因此这个解决方案非常有用。 我实际上不明白为什么这与在存储库的浅层克隆中运行 python setup.py buildsudo python setup.py install 有什么不同。什么是魔法酱?是不是特定版本的libgeos? 这在没有 'sudo apt-get install libgeos-3.5.0' 的情况下工作 你先生,是MVP。不得不将libgeos-3.5.0 更改为libgeos-3.6.2(但已经过了 3.5 年)。【参考方案4】:

在尝试了一天不同的方法之后,这对我有用:

conda install -c conda-forge basemap

【讨论】:

【参考方案5】:

在我的情况下它有效

sudo apt install python3-mpltoolkits.basemap

【讨论】:

【参考方案6】:

conda install -c anaconda basemap

转到 Anaconda Navigator,搜索 basemap 并点击应用

【讨论】:

【参考方案7】:

如果你使用 Anaconda,它有一个底图包

conda 安装底图

(pip 已经没有底图包了)

如果你用的是Ubuntu系统可以试试

apt install python3-mpltoolkits.basemap

【讨论】:

【参考方案8】:

我不使用 Anaconda,使用 MacOS,我发现这个解决方案对我有用。我想这很简单,应该适用于 Linux 和 MacO。

https://***.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

【讨论】:

【参考方案9】:

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

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

【讨论】:

【参考方案10】:

我遵循了这个答案:

https://***.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 上对我有用。

【讨论】:

【参考方案11】:

我能够通过以下步骤获得底图。请注意,我安装了--user

    创建底图的浅层克隆 (git clone --depth 1 git@github.com:matplotlib/basemap.git) 或提取当前版本的 tarball。 安装必要的必备库(在 Ubuntu 上,libgeos-devlibproj-devlibgeos++-devproj-dataproj-binlibgeos-c1v5libgeoslibproj12,我想)。李> 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 之类的示例。

【讨论】:

【参考方案12】:

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

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

【讨论】:

我讨厌你遇到问题而人们忽略它并只是说“只需将 UNKNOWN REPOSITORY 添加到您信任的来源并安装 xyz”。这不是一个真正的解决方案,这是一个肮脏的解决方法(甚至是公认的答案,哈哈)。我不确定问题的原因,但这似乎从根本上解决了问题。谢谢!【参考方案13】:

我遇到了这个问题,我可以使用 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()

【讨论】:

以上是关于Python 底图模块无法导入的主要内容,如果未能解决你的问题,请参考以下文章

python中模块包无法导入import问题

Python的错误导入已经安装模块问题,怎么解决

AWS Lambda python 错误:Runtime.ImportModuleError:无法导入模块“app”:无法从“pyparsing”导入名称“operatorPrecedence”

python aes模块怎么导入

无法导入已安装的模块

Python 无法导入 ssl 模块