【问题标题】:Python version inconsistencyPython版本不一致
【发布时间】:2021-10-17 17:33:41
【问题描述】:

我使用 pyenv 在我的 mac (Big Sur os) 上安装 Python 3.8.11 和 3.9.6,并将 3.8.11 设置为我想要用于创建虚拟环境的 Python 版本(遵循指令here)。但是,即使我已经将系统设置为使用 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 

谁能告诉我我错过了什么/做错了什么?解决这个问题的最佳方法是什么?

【问题讨论】:

  • 不知道是不是变化很大,但你试过brew uninstall python@3.8.2吗?
  • brew uninstall python@3.8.2 导致Error: No available formula or cask with the name "python@3.8.2". Did you mean python@3.8, python@3.9 or python@3.7?

标签: python python-3.x python-venv pyenv


【解决方案1】:

pyenv 管理python 命令。如果您明确调用python3,则您正在绕过pyenv

允许您以交互方式使用任何一种的简单安排是

alias python3=python

在你的 shell 的启动文件中。

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

【讨论】:

  • 刚刚将alias python3=python 添加到~/.bash_profile,重新启动我的终端,并尝试通过键入pyenv local 3.8.11 将系统python 设置为3.8.11。但是现在,python3 -Vpython -V 都显示python 2.7.16 是正在使用的python 版本。还有其他想法吗?
  • 听起来pyenv 那时不再活跃。您是否从登录文件中删除了eval "$(pyenv init -)"?如果您以交互方式运行它,是否会在该 shell 实例中开始工作?
  • 我刚刚从~/.bash_profile 中删除了eval "$(pyenv init -)",结果相同...系统仍在使用python 2.7.16。我确实尝试使用 flask run 运行我的烧瓶应用程序,但由于使用了错误的 python 版本而出现错误。
  • 不,不要删除它。如果您这样做了,我要求将其放回原处,并弄清楚为什么 pyenv 如果您认为它会是不活跃的,那么它会不活跃。
  • 好的,所以问题是我的系统没有使用 pyenv 垫片的路径。原因:我在~/.bash_profile 中有export PATH="$HOME/.pyenv/bin:$PATH" 而不是export PATH="$HOME/.pyenv/shims:$PATH"。不知道那是怎么发生的,但很可能是我变得绝望,只是在研究这个问题 6 小时后粘贴了各种错误信息。列出的解决方案没有解决我的问题,但您最近的评论指示我找到解决方案。如果您想更新答案,很高兴选择您的解决方案。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 2018-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多