2016-06-07 3 views
0

matplotlib에서 pyplot을 가져올 때마다 ImportError가 발생합니다. Matplotlib는 가상 환경에서 pip를 통해 설치됩니다. 다음과 같은 오류가 발생합니다.pyplot 가져 오기시 ImportError libqhull.so.5

>>> 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 
+0

이미 matplotlib를 다시 설치해 보셨습니까? – cel

+0

예, pip와 apt-get을 통해 다시 설치하려고했습니다. – amalik

+0

»»libqhull.so.5 : 해당 파일이나 디렉토리가 없습니다.«: 가능한 경우 "libqhull5"를 설치하십시오. Qhull-2003.1 (.tar.gz)은'libqhull.so.5'를 제공합니다 - –

답변

3

이 오류는 시스템 업그레이드 후에 발생할 수 있습니다. 제 경우에는 우분투 14.04를 16.04로 업그레이드했습니다. Matplotlib은 \*.so의 특정 버전으로 연결되며 이는 오래된 버전입니다. 나는 다른 버전이 (항상) 하위 호환성이 없기 때문에 이것이라고 추정한다. (나를 위해, 나는 OS 업그레이드 중 libqhull.so.7libqhull.so.6에서 가서하기 matplotlib는 libqhull.so.6 연결되었다.)

첫째, 당신은 아마 libqhull가 같은 것을 사용하여 시스템에 존재 확인 할 수 있습니다

sudo apt install libqhull-dev 

또는 이와 동등한 시스템 (광산이 이미 설치, 그래서 아무것도 변경되지 않았다.)이 새로운 so 파일 링크 있도록

하는 요즘 때문에, pip 종종 이미 컴파일 바퀴를 설치합니다, 우리는 컴파일을 할 pip을 강제해야합니다 .

  • --no-binary matplotlibmatplotlib의 휠을 사용하지 pip를 알려줍니다 (하지만 여전히 numpy 같은 종속성 바퀴를 사용할 수 있습니다) :

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

    옵션을 : 내가 사용. 우리는 이미 최신 matplotlib 버전에있을 수 있기 때문에

  • --upgrade
  • --force 분명해야하고 --upgrade는 아무것도하지 않습니다.