Makefile shell 函数和环境变量

Makefile shell function and environment vars

我正在为 Postgres 使用 Multicorn,它的 Makefile 似乎不能很好地与 Python 虚拟环境一起使用。尽管有 pyenv,它仍想将自己安装到系统 Python。我认为这是因为它的 Makefile 这样做是为了找到 Python 版本:

$(shell ${PYTHON} --version 2>&1 | cut -d ' ' -f 2 | cut -d '.' -f 1-2)

根据我的阅读,shell 启动了一个全新的 shell,它似乎没有继承 pyenv 设置的环境变量以将所有内容指向某个 Python版本。

想知道是否有人遇到过类似的问题以及他们是如何解决的。

谢谢!

您可以通过PYENV_VERSION环境变量传递pyenv版本。我会想象这样的事情:

PYENV_VERSION=your_virtualenv make

上班。