如何让 venv 安装 python3.6 二进制文件?

How can I make venv install a python3.6 binary?

当我 运行 python -m venv 时,venv 创建的虚拟环境目录包括一个名为 python 的二进制文件和另一个名为 python3 的二进制文件,这只是一个link 到 python。 (在我的安装中,python 是 Python 3.6,python2 是 Python 2.7。)

我的问题是,有时(我无法理解后续调用之间的区别)它还会创建另一个指向 python 的符号 link python3.6,但有时它没有。我需要这个 symlink(实际上,tox 需要它)。二进制文件 pip3.6easy_install-3.6 总是安装在 virtualenv 中。

有什么方法可以确保 python -m venv 创建一个 symlink python3.6?

(免责声明:我正在使用 pyenv 来管理我的 Python 安装,但我可以使用 /usr/bin/python -m venv 重现上述行为)

在创建 venvs(python -m venv,而不是 virtualenv)时,我通过在创建调用中包含版本号获得了成功;

python3.6 -m venv myvenv

你需要有二进制文件才能让 venv 使用它,但如果你有它,使用 python2 -m venvpython3 -m venv 应该无关紧要。如果你想要 3.6,试试:

python -m venv python=`which python3.6` ~/envs/py36