Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pyenv:`python3.6-mvenv`使用python3.7.4创建环境_Python_Python Venv_Pyenv - Fatal编程技术网

Pyenv:`python3.6-mvenv`使用python3.7.4创建环境

Pyenv:`python3.6-mvenv`使用python3.7.4创建环境,python,python-venv,pyenv,Python,Python Venv,Pyenv,我在使用pyenv创建虚拟环境时遇到了一些问题 这很好: $pyenv local 3.6.0 $python >>>Python 3.6.0(默认值,2019年7月21日,14:03:29) >>>[GCC 4.2.1达尔文兼容苹果LLVM 10.0.1(clang-1001.0.46.4)] >>> ... 但是,当我创建一个虚拟环境(我假设是用Python3.6.0完成的)并激活它时,我得到了Python3.7.4。如果我使用python3.6-mvenv,也会发生同样的情况 $pyth

我在使用pyenv创建虚拟环境时遇到了一些问题

这很好:

$pyenv local 3.6.0
$python
>>>Python 3.6.0(默认值,2019年7月21日,14:03:29)
>>>[GCC 4.2.1达尔文兼容苹果LLVM 10.0.1(clang-1001.0.46.4)]
>>> ...
但是,当我创建一个虚拟环境(我假设是用Python3.6.0完成的)并激活它时,我得到了Python3.7.4。如果我使用
python3.6-mvenv
,也会发生同样的情况

$python-m venv venv
$source venv/bin/激活
$python
>>>Python 3.7.4(默认值,2019年7月9日,18:13:23)
>>>关于达尔文的[Clang 10.0.1(Clang-1001.0.46.4)]
换句话说,我想创建一个虚拟环境,其版本与当前通过pyenv激活的版本相同。我错过了什么

我的系统的一些信息:

  • 我在macOS上
  • 我已经通过自制程序安装了Python 3.7.4,它是
    python3
    的默认版本
  • 如果我只调用
    python
    而没有在shell中激活pyenv,那么我就得到了python2.7.16解释器
我写过,你应该做的是:

virtualenv -p /path/to/your/python/version/exectuable ENV
如果我只调用python而没有在shell中激活pyenv,那么我将得到python 2.7.16解释器

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

pyenv
需要在shell配置文件中使用以下代码进行初始化

if命令-v pyenv&>/dev/null;然后
求值“$(pyenv init-”
fi
if命令-v pyenv virtualenv&>/dev/null;然后
“$(pyenv virtualenv init-”
fi
之后,重新启动shell
pyenv
将按预期工作


查看项目的repo以了解更多信息。

我现在意识到系统时钟也被弄乱了:p在裸终端中调用
python3.6
时,您有什么版本(没有激活venv)?@Derlino 3.6.0。如果在启动新shell会话时未加载pyenv初始化脚本,
python3.6
将失败。请从项目的repo中检查
README.md
<代码>pyenv未在您的计算机上正确安装。我没有安装virtualenv。内置的venv模块也可以实现同样的功能吗?这并不能回答这个问题,这就是为什么venv不能按预期运行的原因。@DPinto-是的,正如我所知,您可以将其用于venv模块。@Derlin-否。问题是“我想创建一个具有当前活动的相同版本的虚拟环境”,意思是“如何”而不是“为什么”。但是对于“为什么”的问题,我认为venv从路径中获取可执行文件,这样您就可以覆盖它。