没有VirtualEnv的Python2.7中的Site-Packages

时间:2014-11-25 00:55:24

标签: python matplotlib pip

当我使用pip install matplotlib --upgrade时,它会运行并安装matplotlib和所有依赖项,最后会显示uninstalled version '1.3.1'。再次运行python和matplotlib.__version__输出'1.3.1',即使它刚刚声明已卸载。如何切换我正在运行的python,希望pip正在安装和更新软件包?

编辑:运行Mac OS 10.10.1,使用bash中的python。

which pip返回/usr/local/bin/pipwhich -a python返回

/opt/local/bin/python
/opt/local/bin/python
/Library/Frameworks/Python.framework/Versions/Current/bin/python
/Library/Frameworks/Python.framework/Versions/Current/bin/python
/Library/Frameworks/Python.framework/Versions/Current/bin/python
/Library/Frameworks/Python.framework/Versions/2.6/bin/python
/usr/bin/python

我假设是问题所在。我之前删除了2.6,但我的Mac使用它,我不得不恢复我的操作系统。我如何在它们之间切换。

1 个答案:

答案 0 :(得分:0)

您的问题似乎是您安装了两个或更多Python 2.7,而PATH上的第一个python来自一个安装(MacPorts版本,/opt/local/bin/python),而第一个pip PATH上的{1}}来自另一个(你没有说过,但我猜它是/usr/local/bin/pip,并且它附加到预安装的Apple Python或另一个Python)。 / p>

如果你想在整个文件系统中安装大量Pythons并在不使用virtualenv的情况下切换它们,你只需编写一些脚本来修改你的PATH。 (还有你的PYTHONPATH,如果你使用的话......但希望你没有。)

但我不建议这样做。如果您想使用MacPorts Python:

  • 确保您安装了MacPorts pip(它应该在/opt/local/bin/pip中)。我不知道MacPorts是否有单独的python-pip包,或者您希望install it manually或其他方式。
  • 如果您不知道如何重新设置shell缓存,只需在安装MacPorts pip后打开一个新的终端窗口。或者,为了安全起见,只需明确使用/opt/local/bin/pip,直到您下次退出并重新登录。
  • 编写脚本时,您可能需要#!/opt/local/bin/python而不是#!/usr/bin/env python
  • 卸载除MacPorts之外的所有其他Python以及预先安装的Apple。
  • 您为其他Python安装而意外安装的任何软件包,只需为MacPorts重新安装它们即可。此外,您通常应首先检查端口,例如port install python-ipythonport install python27-ipython,如果没有端口文件,则只返回pip

作为旁注,许多有这个问题的人也有MacPorts与Homebrew(或者有时是Fink,gentoo-alt或其他软件包管理器)发生冲突,但现在都不是很常见。如果你正在使用两个这样的软件包经理,除非你知道自己在做什么,否则你真的应该这样做。我将完全禁用一个(至少将它从PATH中删除,如果不卸载它)。在你这样做之后,你可能不得不重建一堆东西,但它比有一些东西有时更有效......