强求libqhull.so.5导入pyp时

2024-10-01 19:26:59 发布

您现在位置:Python中文网/ 问答频道 /正文

每当我试图从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

Tags: inimporthomematplotliblibpackageslocalline
1条回答
网友
1楼 · 发布于 2024-10-01 19:26:59

这可能在系统升级后发生。在我的具体例子中,我将ubuntu14.04升级到16.04。Matplotlib链接到\*.so的特定版本,这些版本已经过时。我想这是因为不同的版本并不(总是)向后兼容。 (对我来说,在操作系统升级期间,我从libqhull.so.6变成了{},matplotlib链接到libqhull.so.6。)

首先,您可以使用如下方法确保libqhull存在于您的系统中:

sudo apt install libqhull-dev

或者与你的系统相当。 (我的已经安装好了,所以没什么变化。)

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

^{pr2}$

选项:

  • no-binary matplotlib告诉pip不要对matplotlib使用控制盘(但它仍然可以对依赖项使用控制盘,例如numpy)。在
  • upgrade应该很明显
  • force,因为我们可能已经是最新的matplotlib版本,那么{}将不会做任何事情。在

相关问题 更多 >

    热门问题