我正在尝试在Ubuntu 12.04上使用matplotlib。所以我用pip制作了一个轮子:
python .local / bin / pip wheel --wheel-dir = wheel / --build = build / matplotlib
然后成功安装了它:
python .local / bin / pip install --user --no-index --find-links = wheel / --build = build / matplotlib
但是当我试图在ipython中导入它时会发生导入错误:
在[1]中:导入matplotlib
在[2]中:matplotlib.get_backend()
出[2]:u'agg'在[3]中:导入matplotlib.pyplot
导入错误
追溯(最近的电话 最后)/ place / home / yefremat / in () ----> 1导入matplotlib.pyplot/home/yefremat/.local/lib/python2.7/site-packages/matplotlib/pyplot.py in() 32来自matplotlib import docstring 33来自matplotlib.backend_bases导入FigureCanvasBase ---> 34来自matplotlib.figure import图,figaspect 35来自matplotlib.gridspec导入GridSpec 36来自matplotlib.image import imread as _imread
/home/yefremat/.local/lib/python2.7/site-packages/matplotlib/figure.py in() 38将matplotlib.colorbar导入为cbar 39 ---> 40来自matplotlib.axes导入Axes,SubplotBase,subplot_class_factory 41来自matplotlib.blocking_input导入BlockingMouseInput,BlockingKeyMouseInput 42来自matplotlib.legend导入传奇
/home/yefremat/.local/lib/python2.7/site-packages/matplotlib/axes/的初始化的.py in() 2 unicode_literals) 3 ----> 4来自._subplots导入* 5来自._axes import *
/home/yefremat/.local/lib/python2.7/site-packages/matplotlib/axes/_subplots.py in() 8来自matplotlib import docstring 9导入matplotlib.artist作为战士 ---> 10来自matplotlib.axes._axes导入Axes 11 12个进口警告
/home/yefremat/.local/lib/python2.7/site-packages/matplotlib/axes/_axes.py in() 36将matplotlib.ticker导入为mticker 37将matplotlib.transforms导入为mtransforms ---> 38导入matplotlib.tri作为mtri 39导入matplotlib.transforms为mtrans 40来自matplotlib.container导入BarContainer,ErrorbarContainer,StemContainer
/home/yefremat/.local/lib/python2.7/site-packages/matplotlib/tri/的初始化的.py in() 7进口六 8 ----> 9来自.triangulation导入* 10来自.tricontour import * 11来自.tritools import *
/home/yefremat/.local/lib/python2.7/site-packages/matplotlib/tri/triangulation.py in() 4进口六 五 ----> 6导入matplotlib._tri作为_tri 7将matplotlib._qhull导入为_qhull 8导入numpy为np
导入错误: /home/yefremat/.local/lib/python2.7/site-packages/matplotlib/_tri.so: 未定义的符号:_ZNSt8__detail15_List_node_base9_M_unhookEv
可能是我做错了吗?或者可能有办法关闭matplotlib的gui支持?
提前致谢。
答案 0 :(得分:0)
好的,问题出在gcc版本中。在构建和创建包的pip期间使用系统gcc(版本是4.7.2)。我正在使用virtualenv的python,它是用gcc 4.4.3构建的。因此,libstdc ++库的版本在IPython中是不同的,并且使用了一个pip。
一如既往有两种解决方案(甚至更多):在进入IPython之前,使用正确的libstdc ++传递LD_PRELOAD环境变量,或者在创建wheel和构建virtualenv期间使用相同版本的gcc。我推出了最后一个。
谢谢大家。