Matplotlib不显示virtualenv中的图形

时间:2012-01-29 16:30:36

标签: python virtualenv matplotlib

我在我的virtualenv中安装了pip matplotlib,我试图绘制一个简单的图形。我使用Eclipse和PyDev。当我从Eclipse运行脚本时,它根本不显示任何图形。我已经尝试过在其他问题中提出的建议,例如添加plt.ion(),但这也不起作用。我也在控制台中尝试了相同的代码,但没有。这是我配置的问题吗?如果是这样我该怎么办?

失败的代码是:

    import matplotlib.pyplot as plt
    radius = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
    area = [3.14159, 12.56636, 28.27431, 50.26544, 78.53975, 113.09724]
    plt.plot(radius, area)
    plt.show()

代码不是问题。它可以很好地用于virtualenv。问题是当我在virtualenv中使用它时。问题与我的配置有某种关系。只是为了清理我没有收到任何错误消息。只是窗口不会出现。

谢谢

5 个答案:

答案 0 :(得分:9)

您的代码在OSX 10.7上的virtualenv中使用Python 2.7:

enter image description here

您在virtualenv中使用的是哪个版本的Python?我的猜测是你没有安装matplotlib依赖项,或者你没有正确执行已安装依赖项的安装。在Python 2.7上,这是我安装matplotlib所做的。您是否可以在新的virtualenv中尝试这些步骤,看看它是否适合您?

pip install numpy
pip install scipy
easy_install matplotlib

答案 1 :(得分:9)

我遇到了同样的问题,使用matplotlib代替easy_install安装pip并没有解决问题。最后,我发现问题只是matplotlib无法找到任何后端进行绘图。

我通过执行以下操作解决了这个问题(我正在使用Debian wheezy):

pip uninstall matplotlib
sudo apt-get install tcl-dev tk-dev
pip install matplotlib

答案 2 :(得分:6)

首先,你可能想看看:

http://matplotlib.org/faq/installing_faq.html#matplotlib-compiled-fine-but-nothing-shows-up-when-i-use-it

要查看出现了什么问题,请使用git而不是pip或easy_install查看matplotlib。我们将进行更多手动安装:

git clone git@github.com:matplotlib/matplotlib.git
cd matplotlib
python setup.py

这将打印出pip或easy_install所做的配置。查看“OPTIONAL BACKEND DEPENDENCIES”并确保生成窗口的一些(Tkinter,Gtk +,Mac OS X native,Qt,Cairo等)。如果您发现这些都不可用,那么在继续安装matplotlib之前,需要为您的操作系统安装一些这些库。

安装了say,Tk(在ubuntu:sudo apt-get install tcl-dev tk-dev上),然后当你重新运行时

python setup.py

您将看到启用了Tk后端 。继续进行

python setup.py build && python setup.py install

应该让你运行起来......但是那时你甚至可以删除整个git clone目录并返回使用pip进行安装。

答案 3 :(得分:4)

如果您的系统版本的python上安装了matplotlib版本,则可以链接到matplotlib的系统版本。在我的机器上,我做了以下事情:

cd $VIRTUAL_ENV/lib/python2.7/site-packages
ln -s /usr/lib/pymodules/python2.7/matplotlib .
ln -s /usr/lib/pymodules/python2.7/matplotlib-1.1.1rc .

这避免了使用matplotlib在virtualenv中工作的许多问题,但是限制你使用matplotlib的系统版本(在这台机器上也不错)。

此方法还允许您使用--no-site-packages,但仍然可以使用matplotlib。

答案 4 :(得分:2)

我在我的电脑上使用Ubuntu 12.04和Python 2.7.3 当我在virtualenv中使用matplotlib 1.2.0时,show()在我将其升级到1.2.1之前不起作用...我之前遇到的所有错误都消失了......

通过执行此操作,您将安装matplotlib的所有依赖项:

sudo apt-get build-dep python-matplotlib

要获取最新版本的matplotlib,您可以使用:

pip install matplotlib

或升级它:

pip install matplotlib --upgrade