Python版本不一致



我已经使用pyenv在我的mac(Big Sur os)上安装了Python 3.8.11和3.9.6,并将3.8.11设置为我想要用于创建虚拟环境的Python版本(按照此处的说明操作)。但是,尽管我已经将系统设置为使用3.8.11,但最终产生的虚拟环境似乎是使用Python 3.8.2。

这就是我所做的:

  1. 通过Homebrew 安装pyenv

  2. 通过pyenv install 3.X.X安装Python 3.8.11和3.9.6

  3. eval "$(pyenv init -)"添加到作为空文件的~/.bash_profile

  4. 在终端中键入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的启动文件中。

在活动虚拟环境中,pythonpython3都解析为该环境设置要使用的任何内容。如果不正确,只需删除并(这次是正确的)重新创建环境。

最新更新