如何告诉Homebrew在virtualenv中安装?

se7*_*7en 6 python homebrew matplotlib virtualenv

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

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

Tim*_*ith 10

我帮忙维护自制的python龙头.这不是也不会得到支持,可能没有一种简单的方法可以做到这一点.

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

抱歉!


krs*_*013 7

虚拟环境所做的就是通过修改变量来更改将调用的 Python 解释器PATH。Homebrew 不考虑这一点,因为它不使用 Python 来安装软件包(就像pip那样)。正如蒂姆所说,按照设计,Homebrew 每次都会安装在自己的前缀内。

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

如果您希望在虚拟环境中使用 Homebrew 软件包,您可以做的是在 venv 中启用系统站点软件包python3 -m venv --system-site-packages ~/path/to/venv(在 Python3 中,这将是)。这也可以用来更新现有的虚拟环境。

启用系统站点包允许 Python 使用全局安装的包,但它仍然会首先在 venv 内搜索,并且您可以通过安装带有pip. 据我所知,在这种情况下,这已经是最接近正确的方法了。