Python 在virtualenv中安装pip时的Matplotlib要求
我有一个requirements.txt文件,如下所示: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
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
未安装,matplotlibsetup.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的新版本尚未发布。。。