我已经使用pyenv在我的mac(Big Sur os)上安装了Python 3.8.11和3.9.6,并将3.8.11设置为我想要用于创建虚拟环境的Python版本(按照此处的说明操作)。但是,尽管我已经将系统设置为使用3.8.11,但最终产生的虚拟环境似乎是使用Python 3.8.2。
这就是我所做的:
-
通过Homebrew 安装pyenv
-
通过
pyenv install 3.X.X
安装Python 3.8.11和3.9.6 -
将
eval "$(pyenv init -)"
添加到作为空文件的~/.bash_profile
-
在终端中键入
pyenv local 3.8.11
,然后在终端中输入pyenv versions
,以确认正在使用3.8.11:$ pyenv versions system * 3.8.11 (set by /Users/me/projects/sample/.python-version) 3.9.6
但是,当我在终端中键入python3 -V
时,我的系统指示正在使用Python 3.8.2:
$ python3 -V
Python 3.8.2
当我键入which python3
时,系统显示到python3(大概是3.8.2)的路径为/usr/bin/python3
:
$ which python3
/usr/bin/python3
我不记得Python 3.8.2是何时/如何安装在我的机器上的。我确实尝试用brew uninstall python@3.8
卸载,但系统返回:
$ brew uninstall python@3.8
Error: No available formula or cask with the name "python@3.8". Did you mean python@3.8, python@3.9, python@3.7 or python-yq?
无论如何,因为我被卡住了,我赌了一把,我输入了python3 -m venv virtual_env
来创建我的虚拟环境,希望新环境是我想要的python版本,但在使用source virtual_env/bin/activate
激活我的虚拟空间后,我输入python -V
,并确认生成的环境使用的是python 3.8.2而不是3.8.11:
(virtual_env) me$ python -V
Python 3.8.2
有人能告诉我我遗漏了什么/做错了什么吗?克服这个问题的最佳方法是什么?
pyenv
控制python
命令。如果显式调用python3
,则绕过pyenv
。
是一种简单的安排,可以让你交互使用
alias python3=python
在shell的启动文件中。
在活动虚拟环境中,python
和python3
都解析为该环境设置要使用的任何内容。如果不正确,只需删除并(这次是正确的)重新创建环境。