【问题标题】:ImportError libqhull.so.5 when importing pyplotImportError libqhull.so.5 导入pyplot时
【发布时间】:2016-06-07 17:53:08
【问题描述】:

每当我尝试从 matplotlib 导入 pyplot 时,都会收到 ImportError。 Matplotlib 通过 pip 在虚拟环境中安装。这是我得到的错误:

>>> import matplotlib.pyplot
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/mikefrank/.virtualenvs/pv-hrt/local/lib/python2.7/site-packages/matplotlib/pyplot.py", line 36, in <module>
from matplotlib.figure import Figure, figaspect
  File "/home/mikefrank/.virtualenvs/pv-hrt/local/lib/python2.7/site-packages/matplotlib/figure.py", line 40, in <module>
from matplotlib.axes import Axes, SubplotBase, subplot_class_factory
  File "/home/mikefrank/.virtualenvs/pv-hrt/local/lib/python2.7/site-packages/matplotlib/axes/__init__.py", line 4, in <module>
from ._subplots import *
  File "/home/mikefrank/.virtualenvs/pv-hrt/local/lib/python2.7/site-packages/matplotlib/axes/_subplots.py", line 10, in <module>
from matplotlib.axes._axes import Axes
  File "/home/mikefrank/.virtualenvs/pv-hrt/local/lib/python2.7/site-packages/matplotlib/axes/_axes.py", line 38, in <module>
import matplotlib.tri as mtri
  File "/home/mikefrank/.virtualenvs/pv-hrt/local/lib/python2.7/site-packages/matplotlib/tri/__init__.py", line 9, in <module>
from .triangulation import *
  File "/home/mikefrank/.virtualenvs/pv-hrt/local/lib/python2.7/site-packages/matplotlib/tri/triangulation.py", line 7, in <module>
import matplotlib._qhull as _qhull
ImportError: libqhull.so.5: cannot open shared object file: No such file or directory

【问题讨论】:

  • 您是否已经尝试过重新安装matplotlib?
  • 是的,我尝试通过 pip 和 apt-get 重新安装它。
  • »» libqhull.so.5:没有这样的文件或目录««:请安装“libqhull5”,如果有的话。 Qhull-2003.1(.tar.gz) 提供libqhull.so.5 -
  • 我在Qhull-2003.1中编译文件后仍然出现错误。除了./configuremake,我还需要做什么吗?
  • 您的应用程序可能只在 /usr/lib*/ 中寻找 libqhull.so.5 吗?安装到 /usr/lib*/ :./configure --prefix=/usr/ &amp;&amp; make。还有#make install -

标签: python linux matplotlib importerror


【解决方案1】:

这可能在系统升级后发生。在我的具体情况下,我将 Ubuntu 14.04 升级到 16.04。 Matplotlib 链接到 \*.so 的特定版本,这些已经过时了。我认为这是因为不同的版本(总是)不向后兼容。 (对我来说,我在操作系统升级期间从libqhull.so.6 转到libqhull.so.7,并且matplotlib 链接到libqhull.so.6。)

首先,您可能可以通过使用以下内容来确保您的系统上存在libqhull

sudo apt install libqhull-dev

或您系统的等效项。 (我的已经安装了,所以没有任何改变。)

由于现在pip 经常安装一个已经编译好的轮子,我们需要强制pip 进行编译,所以它与新的so 文件链接。 我用过:

py35 -m pip install --upgrade matplotlib --no-binary matplotlib --force

选项:

  • --no-binary matplotlib 告诉 pip 不要为 matplotlib 使用轮子(但它仍可能使用轮子作为 numpy 等依赖项)。
  • --upgrade 应该很明显
  • --force,因为我们可能已经在最新的matplotlib 版本,然后--upgrade 将不会做任何事情。

【讨论】:

    猜你喜欢
    • 2020-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-02
    • 1970-01-01
    • 2014-08-01
    • 2017-05-13
    • 2020-12-25
    相关资源
    最近更新 更多