Pyenv:`python3.6 -m venv venv`使用Python 3.7.4创建环境

时间:2019-07-29 11:37:06

标签: python python-venv pyenv

使用pyenv创建虚拟环境时遇到麻烦。

这很好:

$ pyenv local 3.6.0
$ python
>>> Python 3.6.0 (default, Jul 21 2019, 14:03:29)
>>> [GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.46.4)] on darwin
>>> ...

但是,当我创建一个虚拟环境(假定使用Python 3.6.0完成)并激活它时,我得到了Python 3.7.4。如果我使用python3.6 -m venv venv,也会发生同样的情况。

$ python -m venv venv
$ source venv/bin/activate
$ python
>>> Python 3.7.4 (default, Jul  9 2019, 18:13:23)
>>> [Clang 10.0.1 (clang-1001.0.46.4)] on darwin

我想用一个虚拟的环境创建一个与pyenv当前处于活动状态的版本相同的虚拟环境。我在这里想念什么?

我系统中的一些信息:

  • 我在macOS上。
  • 我已经通过Homebrew安装了Python 3.7.4,它是python3的默认版本。
  • 如果仅在未在外壳程序中激活pyenv的情况下调用python,则会获得Python 2.7.16解释器。

2 个答案:

答案 0 :(得分:0)

  

如果仅在未在外壳中激活pyenv的情况下调用python,则会获得Python 2.7.16解释器。

这意味着pyenv中的垫片不会添加到PATH环境中。

pyenv需要在shell conf中使用以下代码进行初始化,

if command -v pyenv &>/dev/null; then
  eval "$(pyenv init -)"
fi

if command -v pyenv-virtualenv &>/dev/null; then
  "$(pyenv virtualenv-init -)"
fi

然后,重新启动您的Shell。 pyenv将按预期工作。

从项目的仓库中查看basic setup from pyenv,了解更多信息。

答案 1 :(得分:-2)

我写过here,您应该做的是:

virtualenv -p /path/to/your/python/version/exectuable ENV