如何选择默认的Python Homebrew版本?

问题描述 投票:0回答:2

我使用自制程序拥有所有三个版本的 python 3.10、3.11 和 3.12。但不知何故,自制程序默认使用 3.11 作为默认值。

当我输入

which python3
时,它显示版本为 3.11.6,而不是 3.12。为什么默认为 3.11?如何将其更改为 3.12?

我原以为最新版本 3.12 会成为默认版本。

python homebrew python-3.11 python-3.12
2个回答
1
投票

在我看来,由于系统 PATH 的当前配置或 Homebrew 链接 Python 版本的方式,Homebrew 默认为 Python 3.11.6。要将默认版本更改为 Python 3.12,您可能需要尝试以下步骤:

  1. 检查自制链接:
    使用 Homebrew 检查 Python 3.12 的链接状态:
brew info [email protected]
  1. 更改系统路径(如有必要):
    如果 Python 3.12 已正确链接但未出现在 PATH 中,您可能需要更改系统 PATH。更新您的 shell 配置文件(例如,
    ~/.zshrc
    ~/.bash_profile
    ),将包含 Python 3.12 可执行文件的目录放在其他目录之前:
export PATH="/usr/local/opt/[email protected]/bin:$PATH"
  1. 使用 Homebrew 链接(谨慎):
    或者,您可以尝试使用 Homebrew 的
    link
    命令来更改默认的 Python 版本。请小心,因为这可能会导致依赖关系破裂:
brew link --overwrite [email protected]
  1. 考虑使用
    pyenv

    为了获得更强大的解决方案,请考虑使用 pyenv 来管理多个 Python 版本:
brew install pyenv
pyenv install 3.12.0
pyenv global 3.12.0

0
投票

问题似乎在于 [电子邮件受保护][电子邮件受保护] 自制 ruby 脚本之间的差异。

3.11 有用于 python3 的 link_overwrite ,它在 /usr/local/bin/ (通常位于您的 $PATH 中)中设置一堆符号链接以使用 3.11。

https://github.com/Homebrew/homebrew-core/blob/b87c13c9f4c2d97bc4302fdbfb0f52cb0682ade3/Formula/p/python%403.11.rb#L57

3.12 缺少这个,所以你的 shell 无法看到它们。

https://github.com/Homebrew/homebrew-core/blob/b87c13c9f4c2d97bc4302fdbfb0f52cb0682ade3/Formula/p/python%403.12.rb#L314

您可以通过修改您的 $PATH(如其他回复中所示)或手动替换符号链接来纠正此问题:

cd /usr/local/bin && rm python3 && ln -s ../Cellar/[email protected]/3.12.1/bin/python3.12 python3
© www.soinside.com 2019 - 2024. All rights reserved.