Python pip显示包的错误版本

Python pip显示包的错误版本,python,pip,Python,Pip,我不确定这是一个bug,还是我做错了什么。 情况如下, pip list -o 生成一个过时python包的列表,以及当前安装的版本。 问题是,我非常确定它至少在某些软件包上给了我错误的信息,因为我可以验证,如下面的示例所示,pip认为已安装的ipython版本(2.0.0)不是我在命令提示符下运行ipython时得到的版本(版本==2.1.0) kolmogorov:~#pip list-o | head-15 警告:找不到峰值规则==0.5a1.dev-r2707的svn位置 警告:找不

我不确定这是一个bug,还是我做错了什么。 情况如下,

pip list -o 
生成一个过时python包的列表,以及当前安装的版本。 问题是,我非常确定它至少在某些软件包上给了我错误的信息,因为我可以验证,如下面的示例所示,pip认为已安装的ipython版本(2.0.0)不是我在命令提示符下运行ipython时得到的版本(版本==2.1.0)

kolmogorov:~#pip list-o | head-15
警告:找不到峰值规则==0.5a1.dev-r2707的svn位置
警告:找不到优先方法的svn位置==0.2.2dev-20110830
scipy(当前版本:0.13.2最新版本:0.14.0)
plotly(当前版本:1.0.30最新版本:1.0.32)
SOAPpy(当前版本:0.12.21最新版本:0.12.22)
openpyxl(当前版本:1.8.6最新版本:2.0.3)
networkx(当前版本:1.8.1最新版本:1.9)
设置工具(当前版本:3.4.1最新版本:5.1)
brewer2mpl(当前版本:1.3.2最新版本:1.4)
repose.who(当前版本:1.0.19最新版本:2.2)
熊猫(当前:0.13.1最新:0.14.0)
pygeocoder(当前版本:1.2.2最新版本:1.2.5)
ipython(当前版本:2.0.0最新版本:2.1.0)
龙卷风(当前:3.2最新:3.2.2)
找不到任何满足vboxapi要求的下载
回溯(最近一次呼叫最后一次):
文件“/usr/bin/pip”,第9行,在
加载入口点('pip==1.5.6','console脚本','pip')()
文件“/usr/lib/python2.7/dist-packages/pip/_-init__.py”,主目录第235行
return command.main(cmd_args)
文件“/usr/lib/python2.7/dist packages/pip/basecommand.py”,第156行,在main中
logger.fatal('异常:\n%s'%format\u exc())
文件“/usr/lib/python2.7/dist-packages/pip/log.py”,第111行,格式为
self.log(self.FATAL,msg,*args,**kw)
文件“/usr/lib/python2.7/dist-packages/pip/log.py”,第164行,在日志中
consumer.flush()
IOError:[Errno 32]管道破裂
科尔莫戈罗夫:~#伊皮顿
Python 2.7.7(默认值,2014年6月3日,16:16:56)
有关详细信息,请键入“版权”、“信用”或“许可证”。
iPython2.1.0——一种增强的交互式Python。
?         -> 介绍和概述IPython的功能。
%快速参考->快速参考。
帮助->Python自己的帮助系统。
对象?->有关“对象”的详细信息,请使用“对象??”获取更多详细信息。

我的问题是:有没有办法让pip了解已安装python软件包的正确版本?

您可以运行以下命令来查看软件包的来源:

which ipython
以及:


您可能有两个安装:一个是与
pip install ipython一起安装的,另一个是通过单独的工具(Linux上的package manager或Mac上的Ports/brew)安装的。

因此正确执行此操作的方法比我预期的要复杂一些,但我必须提交它作为正确的答案,因为它实际上解决了这个问题

假设被
pip
误解的包版本是
pandas
。因此,您观察到的行为是:

pip list --outdated
表示您安装的
pandas
版本为
0.14.0
;但是,当您在say
ipython
中查询
pandas
的版本时:

In [1]: import pandas 

In [2]: pandas.__version__
Out[2]: '0.14.1'
为了解决这个问题:

  • 运行
    pip show pandas
    ;它应该告诉您发行版的位置,在我的例子中是
    /usr/local/lib/python2.7/dist-packages
  • 重定向到该位置
    cd/usr/local/lib/python2.7/dist包
  • 运行
    ls-lstrh-0.14.*
    ;您应该会看到与您的
    0.14.1
    版本和要删除的
    0.14.0
    版本相关的文件
  • 运行
    rm-rf pandas-0.14.0*.egg info pandas-0.14.0*.pth
  • 应该是这样

    pip show pandas 
    

    现在应该同意pandas的说法了。uuu version uuuu

    我正在删除已安装的版本。超级怪异:kolmogorov:~#pip show ipython---名称:ipython version:2.0.0位置:/usr/local/lib/python2.7/dist-packages需要:kolmogorov:~#pip uninstall ipython无法卸载“ipython”。未找到要卸载的文件。pip无法卸载所有软件包:。也可能是元数据文件丢失了。老实说,我不确定这个问题是否解决了。我从pip开始,不知道我在机器上的ipython版本。我仍然在pip,不知道机器上有哪个版本的ipython。我试图删除可能安装了aptitude的版本,但我仍然有一个ipython(2.1.0)版本,我现在非常确定它是用pip安装的,它认为应该只有版本(2.0.0)才有帮助[
    In [1]: import pandas 
    
    In [2]: pandas.__version__
    Out[2]: '0.14.1'
    
    pip show pandas