Python 在virtualenv中安装pip时的Matplotlib要求

Python 在virtualenv中安装pip时的Matplotlib要求,python,numpy,matplotlib,virtualenv,pip,Python,Numpy,Matplotlib,Virtualenv,Pip,我有一个requirements.txt文件,如下所示: numpy matplotlib 当我在一个新的virtualvenv中尝试pip install-r requirements.txt时,我得到了以下结果: REQUIRED DEPENDENCIES numpy: no * You must install numpy 1.1 or later to build * mat

我有一个requirements.txt文件,如下所示:

numpy
matplotlib
当我在一个新的virtualvenv中尝试
pip install-r requirements.txt
时,我得到了以下结果:

REQUIRED DEPENDENCIES

             numpy: no

                    * You must install numpy 1.1 or later to build

                    * matplotlib.
如果我先安装numpy,然后安装matplotlib,它就可以工作了。但是我想继续使用
pip安装-r requirements.txt
。可能吗?

是的。“requirements.txt”只是一个平面文件,pip可以从中安装软件包。在该文件中,您可以更改依赖项的版本。例如,看起来至少需要1.1,因此尝试将带有“numpy”的行更改为:

numpy==1.1

或者,您可以使用>=如下所示:

numpy
matplotlib
numpy>=1.1

这可能是阻碍你前进的原因。但是,顺便说一句,matplotlib应该已经依赖于numpy了。这似乎需要解决

也见此


马特普洛利布和皮普的配合似乎不太好。所以我认为在这种情况下是不可能的

pip
首先下载需求文件中列出的一个包,然后运行
setup.py
,但它并没有真正安装它(我不太确定
pip
的内部结构)。以这种方式准备好所有软件包后,就可以安装它们了

问题是,
matplotlib
检查其
setup.py
中是否安装了
numpy
(检查本身在中定义)。因此,在执行检查时,
numpy
未安装,matplotlib
setup.py
将退出,并显示您收到的错误消息(这可能不是一个bug,因为它可能需要numpy来构建)

这一点曾在pip和中提到。问题已经解决,但请提供更多细节

到目前为止,我所做的是首先安装numpy,然后从我的需求文件中安装所有软件包

更新12/2012 有一种新的方法来解决这个问题

更新日期:2013年4月
在最近玩了pip之后,我意识到需求文件应该手动重新排列,最好是在生成它的时候


在简单的情况下(即,
numpy
matplotlib
需要订购),您只需反转需求文件:
pip freeze | sort-r

这是库的已知问题,目前正在作为matplotlib增强方案进行讨论:。
在修复之前,我能想象的唯一解决方案是重新打包库以删除numpy检查。

我刚刚习惯调用脚本来重复设置我的virtualenv;它涉及两个需求文件:一个只有numpy,另一个包含所有其他内容


习惯这一点并不可怕,因为当您通过需求文件进行安装时,pip将尝试“全部或全部不做”。通过这种方式,您可以分期安装,以便首先安装依赖项。

我让它在iPython笔记本中的virtualenv中工作

我有

ipython==2.2.0
numpy==1.8.2
matplotlib==1.4.2
它可以在iPython笔记本中使用

%matplotlib inline
from pylab import *
plot([1,2,3])
虽然它在iPython控制台中不起作用,但我非常乐意在笔记本上作图


有一次,我能够通过在virtualenv中安装一些东西来欺骗它从控制台工作,但其他东西只在全局名称空间中,但我忘记了我是如何做到的。我一直在安装和卸载东西。

版本不是问题所在。如果没有版本信息,pip将安装最新的稳定版本。您第二个链接中的问题指向了正确的方向,我想。@bmu,我刚才回答了OP的问题,正如前面所说的,也就是说,如果可以使用依赖项文件使用pip进行安装的话。你的否决票是关于OP没有明确要求解决的问题。对于通过搜索进入此页面的用户,我提供的答案是正确的。有趣的是,
matplotlib
为什么不尝试安装未找到的依赖项。更改需求文件的顺序没有帮助。这正是问题所在。尝试在一个新的virtualenv中从此文件安装,您将得到问题中给出的错误。@pelson我认为您是mpl开发者。有什么想法吗?@pelsonThe,但带有修复程序的matplotlib的新版本尚未发布。。。