Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Matplotlib不';在virtualenv中显示图形_Python_Virtualenv_Matplotlib - Fatal编程技术网

Python Matplotlib不';在virtualenv中显示图形

Python Matplotlib不';在virtualenv中显示图形,python,virtualenv,matplotlib,Python,Virtualenv,Matplotlib,我已经在我的virtualenv中安装了matplotlib,我正在尝试绘制一个简单的图形。我使用Eclipse和PyDev。当我从Eclipse运行脚本时,它根本不显示任何图形。我尝试过在其他问题中提出的建议,例如添加plt.ion(),但这也不起作用。我也在控制台中尝试了相同的代码,但还是没有尝试。这是我的配置有问题吗?如果是这样的话,我如何修复它 失败的代码是: import matplotlib.pyplot as plt radius = [1.0, 2.0, 3.0,

我已经在我的virtualenv中安装了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中使用它时。这个问题与我的配置有关。为了澄清问题,我没有收到任何错误消息。只是窗户不见了


谢谢

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

您在virtualenv中使用的Python版本是什么?我的猜测是,要么您没有安装matplotlib依赖项,要么您安装的依赖项没有正确执行。在Python2.7上,下面是我安装matplotlib的步骤。你能在一个新的virtualenv中尝试这些步骤,看看它是否适合你吗

pip install numpy
pip install scipy
easy_install matplotlib

首先,您可能想签出:

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

git clone git@github.com:matplotlib/matplotlib.git
cd matplotlib
python setup.py
这将打印出pip或easy_install将完成的配置。查看“可选后端依赖项”,确保生成windows的某些依赖项已启用(Tkinter、Gtk+、Mac OS X native、Qt、Cairo等)。如果您发现这些库都不可用,则在继续安装matplotlib之前,需要为您的操作系统安装其中一些库

安装之后,比如说Tk(在ubuntu上:
sudo apt get install tcl dev Tk dev
),然后当您重新运行时

python setup.py
您将看到Tk后端已启用。着手

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

应该让你站起来跑步。。。但是在这一点上,你甚至可以删除整个git克隆目录,然后继续使用pip进行安装。

我在我的计算机上使用的是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

我也遇到了同样的问题,使用
easy\u install
而不是
pip
安装
matplotlib
并没有解决这个问题。最后,我发现问题只是matplotlib找不到任何用于打印的后端

我通过以下方法解决了这个问题(我使用的是Debian哮喘病):


如果在系统版本的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站点软件包,但仍可以使用matplotlib。

您可以开始显示失败的代码,感谢编辑。就我现在所能理解的,你的问题在某种程度上是误导性的,因为它似乎表明问题(也是)pydev。如果您可以将EclipsePydev作为问题放弃(可能是在控制台上运行,或者是空闲而不是pydev),那么应该修改您的标题和标记以使用virtualenv更改pydev。这将有助于正确的人看待这个问题。它是如何失败的?任何错误消息?您是否尝试过该选项?如果您使用的是
Agg
后端,则会出现此类行为,该后端只能踢出图像而不能生成窗口
plt.show()
将在您观察时保持沉默,但是如果您
plt.figure().show()
UserWarning:matplotlib当前使用的是非GUI后端,因此无法显示该图,则可以强制发出警告
我将尝试此操作(尽管我已经安装了numpy和scipy)但是为什么你要用easy_install来安装matplotlib,而用pip来安装matplotlib呢?我过去在用pip安装matplotlib时遇到过问题。嘿..它起作用了:)…问题一直是我没有用easy_install来安装matplotlib。显然皮普有问题!谢谢你的回答!救了我一天。谢谢这对我有用。我是用pip安装的,而不是用easy_安装的。在我的环境中,神奇的是,全局matplotlib包使用TkAgg很好,但是没有安装
tcl-dev
tk-dev
。解决了这个问题。使用
easy\u install
vs.
pip
没有任何效果。然而,在安装Tk/Tcl软件包之前,我的virtualenv安装程序仍然能够使用Tk python模块和绘制窗口……virtualenvs内部的Tcl问题已经记录在案,但似乎尚未修复。看见修改
activate.bat
以设置基本python安装中TCL文件的路径的建议为我解决了这个问题。就这么简单!(在标准Ubuntu14.04 LTS上工作)OSX有这么简单的解决方案吗?
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 .