如何告诉Homebrew在virtualenv中安装?

时间:2014-09-06 14:10:42

标签: python matplotlib virtualenv homebrew

这是我的问题。我无法通过pip和源(Matplotlib installation on Mavericks)安装MatPlotLib。我尝试brew install matplotlib,安装成功结束。但是,它全局安装了MatPlotLib,而不是在当前激活的VirtualEnv中。

是否可以告诉brew在当前VirtualEnv中安装软件包?

2 个答案:

答案 0 :(得分:9)

我帮助维护homebrew-python tap。这不是也不会得到支持,可能不是一种简单的方法。

这是因为Homebrew将软件包安装到Homebrew的前缀,这必然是全局的。 Homebrew并不了解virtualenvs或如何在其中安装软件包。改变这将违反Homebrew设计的核心假设,即包总是安装到他们的私人Homebrew前缀。

抱歉!

答案 1 :(得分:1)

虚拟环境所做的就是通过修改PATH变量来改变将调用Python解释器的内容。 Homebrew没有看,因为它不使用Python来安装包(如pip那样)。按照设计,Tim说,Homebrew每次都安装在自己的前缀中。

可以想象一个修改过的Python虚拟环境也可以安装自己的Homebrew副本,但这几乎是一件坏事。

如果您希望在虚拟环境中使用Homebrew软件包,那么可以做的事情是在venv中启用系统站点软件包(在Python3中,这将是{{ 1}})。这样做也可以更新现有的虚拟环境。

启用系统站点程序包允许Python使用全局安装的程序包,但它仍将首先在venv 中搜索,并且您可以通过安装python3 -m venv --system-site-packages ~/path/to/venv的内容来覆盖全局程序包。据我所知,这就像你在那种情况下接近The Right Way一样接近。