繁体   English   中英

没有VirtualEnv的Python2.7中的站点包

[英]Site-Packages in Python2.7 without VirtualEnv

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

编辑:从bash使用python运行Mac OS 10.10.1。

which pip返回/usr/local/bin/pip以及which -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使用了它,因此不得不还原操作系统。 如何在它们之间切换。

您的问题似乎是您有两个或多个Python 2.7安装,并且PATH上的第一个python来自一个安装(MacPorts版本,位于/opt/local/bin/python ),而PATH上的第一个pip来了来自另一个(您还没有说出来,但我想它是/usr/local/bin/pip ,它已连接到预安装的Apple Python或另一个Python)。

如果要在整个文件系统上安装大量Python,并在不使用virtualenv情况下在它们之间进行切换,则只需编写一些脚本并修改PATH (还有您的PYTHONPATH ,如果您使用的是…,但希望您不要。)

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

  • 确保已安装MacPorts pip (应该在/opt/local/bin/pip )。 我不知道MacPorts是否具有单独的python-pip程序包,或者期望您手动安装它 ,否则。
  • 如果您不知道如何重新整理Shell缓存,只需在安装MacPorts pip之后打开一个新的Terminal窗口。 或者,为了安全起见,只需明确使用/opt/local/bin/pip直到下次注销并重新登录。
  • 编写脚本时,您可能希望使用#!/opt/local/bin/python而不是#!/usr/bin/env python
  • 卸载除MacPorts和预先安装的Apple之外的所有其他Python。
  • 您为其他Python安装意外安装的所有软件包,只需为MacPorts重新安装即可。 另外,通常应该首先检查端口,例如port install python-ipythonport install python27-ipython ,并且只有在没有portfile时才回退到pip

附带说明一下,许多有此问题的人也使MacPorts与Homebrew冲突(有时甚至是Fink,gentoo-alt或其他软件包管理器,但如今它们都不是很常见的)。 如果您正在使用两个这样的程序包管理器,那么除非您知道自己在做什么,否则就不应该这样做。 我会完全禁用一个(如果不卸载,至少要从PATH中删除它)。 这样做之后,您可能必须重建一堆东西,但是总比拥有一堆有时会起作用的东西要好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM