【问题标题】:Anaconda can't import installed package matplotlib-vennAnaconda 无法导入已安装的包 matplotlib-venn
【发布时间】:2018-10-24 20:17:56
【问题描述】:

我即将放弃 Anaconda。我从来没有遇到过使用pip 管理我的包裹的问题,我只是想尝试一下,因为现在有一个我无法使用pip 获得的包裹,而且我听说过很多关于它的好消息。

我无法导入刚刚使用 Anaconda 安装的包,类似于 this,但在 MacOS 而非 Windows 上。

我真的不想要多个环境,除非我必须拥有它们。我希望能够从相同的脚本运行我的大部分/所有包。我有一个名为 py37 的虚拟环境,我一直在其中放置大部分东西。在其他软件包中:

(py37) jennifers-mbp:~ jenniferlongdiaz$ conda list
#packages in environment at /anaconda3/envs/py37:
#
# Name                    Version                   Build  Channel    
matplotlib-venn           0.11.5                     py_1    conda-forge
numpy                     1.15.3           py37h6a91979_0  
python                    3.7.1                haf84260_3  

Python 去正确的安装:

(py37) jennifers-mbp:~ jenniferlongdiaz$ which python
/anaconda3/envs/py37/bin/python
(py37) jennifers-mbp:~ jenniferlongdiaz$ python
Python 3.7.1 (default, Oct 23 2018, 14:07:42) 
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.

我可以导入 numpy 但不能导入 matplotlib-venn:

>>> import numpy as np
>>> import matplotlib_venn as venn

...一堆东西然后:

ImportError: cannot import name 'get_backend' from 'matplotlib' (/anaconda3/envs/py37/lib/python3.7/site-packages/matplotlib/__init__.py)

类似:

>>> from matplotlib import get_backend

...一堆东西然后:

ImportError: cannot import name 'get_backend' from 'matplotlib' (/anaconda3/envs/py37/lib/python3.7/site-packages/matplotlib/__init__.py)

从 IDE spyder ((py37) jennifers-mbp:~ jenniferlongdiaz$ spyder) 中,我得到:

In [1]: import matplotlib_venn as venn
Traceback (most recent call last):

  File "<ipython-input-9-aafbc15b97e7>", line 1, in <module>
    import matplotlib_venn as venn

ModuleNotFoundError: No module named 'matplotlib_venn'

请帮忙!

【问题讨论】:

  • 这里有两个单独的问题。 1 是matplotlib_venn 可能依赖于具有该功能的旧版本的 Matplotlib,但他们没有在他们的设置文件中正确指定它(参见github.com/konstantint/matplotlib-venn/blob/…)。其次,如果您希望能够从环境中导入包,则需要将 Spyder 安装到该环境中。
  • spyder 安装在 py37 中,这就是我使用它的地方,见上文
  • 请显示conda list的完整输出如果spyder安装在基础环境中,它仍然会运行即使没有安装在py37环境中!它只会拾取错误的包裹。这是因为 PATH 环境变量的工作原理。
  • 知道了,你是对的,它正在运行基本的 spyder。重新启动终端和 conda install spyder 后,现在一切正常。不确定 matplotlib 发生了什么。如果你回答我会接受
  • 看来@Michael 已经得到了答案,欢迎接受他们的答案

标签: python anaconda matplotlib-venn


【解决方案1】:

根据 matplotlib-venn 的 PyPi 页面 (https://pypi.org/project/matplotlib-venn/),导入应该是这样的:

import matplotlib_venn as venn

请注意,模块用下划线命名,而包用破折号命名;这是一个棘手的不一致


更新更新问题:spyder 的问题是由于 spyder 没有作为 anaconda 的一部分安装,导致系统的 spyder 不知道 anaconda 环境的包。无法从 matplotlib 导入 get_backend 将表明 matplotlib 安装丢失或不正常。两者都只需要使用 conda 安装(或重新安装)软件包

【讨论】:

  • 您是 100% 正确的,但不幸的是,该错误是我在复制我发布帖子时遇到的错误时的拼写错误的结果,而不是给我带来麻烦的错误。我会编辑。
  • Spyder 现在找不到模块?你的 Anaconda 区域安装的是同一个 Spyder 吗?告诉我们哪个
  • 另外,你能从 Python 执行 from matplotlib import get_backend 吗?
  • 哦,我刚刚仔细检查了您的 conda 列表:未安装 matplotlib。尝试使用 conda 安装它并再次导入 matplotlib_venn。我的另一个怀疑是你拥有的 spyder 不知道你的 anaconda 环境(因为你的 conda 列表没有显示它,所以它可能与 anaconda 没有关联),所以它不知道你的任何包在哪里。尝试运行“conda install spyder”将 spyder 安装到您的 anaconda 环境中
  • matplotlib 实际上在那里(我没有粘贴 conda list 的完整输出,因为它很长)但 spyder 没有。重新启动终端并安装了 spyder,现在由于某种原因它可以工作了
猜你喜欢
  • 2023-04-08
  • 1970-01-01
  • 2016-11-26
  • 1970-01-01
  • 1970-01-01
  • 2018-01-05
  • 1970-01-01
  • 2016-02-22
  • 2016-01-30
相关资源
最近更新 更多