ChatGPT解决这个技术问题 Extra ChatGPT

将 python3 设为我在 Mac 上的默认 python

我在这里要做的是将python3作为我的默认python。除了自动安装在mac上的python 2.7,我用homebrew<安装了python3 /强>。这是我关注的网站。 http://docs.python-guide.org/en/latest/starting/install3/osx/#install3-osx

我想我很好地遵循了每一条指令,全新安装了 xcode、命令行工具和自制软件。但这是我的小困惑。

该脚本将解释它将进行哪些更改并在安装开始之前提示您。安装 Homebrew 后,在 PATH 环境变量的顶部插入 Homebrew 目录。您可以通过在 ~/.profile 文件 export PATH=/usr/local/bin:/usr/local/sbin:$PATH 的底部添加以下行来执行此操作

我真的很困惑这是什么,但我得出结论,我应该在 ~/.profile 文件的底部添加以下行。所以我通过在终端中打开 .profile 打开 ~/.profile 文件,并在底部添加以下行。现在它看起来像这样。

export PATH=/usr/local/bin:/usr/local/sbin:$PATH
# Setting PATH for Python 3.6
# The original version is saved in .profile.pysave
export PATH=/usr/local/bin:/usr/local/sbin:$PATH

然后我做了 brew install python,并希望在我做 python --version 时看到 python3。但它只是向我展示了 python 2.7.10。我希望我的默认 python 是 python3 而不是 2.7

我从网站上找到了一点线索。

我是否安装了 Python 3?

$ python --version
Python 3.6.4

如果您仍然看到 2.7 确保在 PATH /usr/local/bin/ 中优先于 /usr/bin/

也许它与PATH有关?有人可以用简单的英语解释一下 PATH 到底是什么,以及当我在终端中运行 python --version 时如何使我的默认 python 成为 python3?

只运行 python3(和 pip3 等)有什么问题?那仍然是 the recommended solution for *nix systems at least until 2020。 (如果多余的字符对您来说太多,只需将 pypy3 别名为 python3,它甚至比 python 还要短。)或者,您是否考虑过使用 venv/virtualenv ?
同时,如果您想了解 PATH 是什么,则不应搜索与 Python 相关的资源,而应搜索一般的 Unix 资源。 SuperUserAskDifferent 可能比 StackOverflow 更相关,但实际上,您是在请人写教程,网上已经有很多更好的教程了。
这里有两种不同的用例:你的和你系统的。让macos使用安装好的2.7版本,否则会有依赖问题。如果您想在 python 中编程,我强烈建议您安装第二个专用发行版(例如 Anaconda/conda,就像上面建议的 virtualenv)。
将东西添加到 PATH 两次只会让事情(一点点)变慢。 exporting PATH 几乎可以肯定已经由系统代表您导出也没有用。
我是python的初学者,所以我只是认为它应该打印python3。那是因为网站是这么说的。如果只输入 python3 没有问题,我会这样做。谢谢你们的解释。干杯:)

n
nbari

可能最安全、最简单的方法是使用 brew,然后修改您的 PATH

第一次更新冲泡:

brew update

接下来安装python:

brew install python

这将安装 python3 并将其符号链接到 python,有关更多详细信息,请执行以下操作:

brew info python

寻找注意事项:

==> Caveats
Python has been installed as
  /usr/local/bin/python3

Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
  /usr/local/opt/python/libexec/bin

然后添加到您的路径 /usr/local/opt/python/libexec/bin

export PATH=/usr/local/opt/python/libexec/bin:$PATH

PATH 的顺序很重要,将 /usr/local/opt/python/libexec/bin 放在首位将有助于优先选择 brew 安装 (python3),而不是系统中位于 /usr/bin/python 中的那个


我很确定 Homebrew 会自动更新 PATH。没有理由在其中显式硬编码 python libexec 文件夹
我以为他们去年停止这样做了:github.com/Homebrew/homebrew-core/pull/14408
这样做然后更新 pip (with pip3 install -U pip) causes subsequent runs of pip to error with pkg_resources.VersionConflict: (pip 19.1 (/usr/local/lib/python3.7/site-packages), Requirement.parse(' pip==19.0.3'))
这主要是我想要的,甚至来自另一个问答 superuser.com/questions/324616/…,不想要别名或系统默认更改,而是 Homebrew 来管理它,可能有一个选项。这很接近,但仍需要自定义别名。我也很好奇 pip 的进一步测试揭示了什么。
此答案仍然适用于在警告中列出 /usr/local/opt/python@3.9/libexec/bin 的最新 Homebrew 公式,因为 /usr/local/opt/python 提供了合适的符号链接。
K
Krunal Rajkotiya

在我们进行更改之前,我系统中的默认 python 版本是 python 2.7.17。

python --version Python 2.7.17

通过在 Ubuntu 中替换 python2 使 python3 成为默认 python。

打开终端 cd nano ~/.bashrc alias python=python3 (在 .bashrc 文件顶部添加这一行) 按 ctr+o (保存文件) 按 Enter 按 ctr+x (退出文件) source ~/.bashrc或者 。 ~/.bashrc (刷新 bashrc 文件)

python --version Python 3.7.5


非常有条理的答案。 :+1
答案直截了当。它适用于 macOS catalina 10.15.3
完美答案——
虽然版本改成了python3,但是默认的python还是python 2.7。就像当你打开一个新的 jupyter notebook,或者安装一个新的包时,活动的 python 仍然是 2.7。
万一 ~/.bashrc 找不到非常有用的答案。检查 ~/.bash_profile 或 ~/.zshenv。
L
Lord Elrond

在系统范围内更改默认 python 版本可能会破坏一些依赖于 python2 的应用程序。另一种解决方案是创建一个 alias

如果您使用 zshMac OS 上的默认设置)从终端运行以下命令:

echo 'alias python="python3"' >> ~/.zshrc

这仅适用于终端会话,但是如果您关闭终端并重新打开终端,您将再次获得源 bashrc。有永久的解决方案吗?
@BigDreamz 我不明白您所说的“永久”是什么意思?
没关系,它现在对我有用。我不得不来源 zshrc
J
Jonathan

根据这个 SO post,更改默认 Python 解释器可能会破坏一些依赖 Python 2 的应用程序。

该帖子还提到了使用别名作为解决方案,而这个 link 也可能是如何做到这一点的一个很好的参考。

就个人而言,我只是在运行脚本或进入 shell 环境之前输入“Python3”而不是“python”。


正如您所说,我认为这是最好的选择:“python3”。我只需要记住在安装新模块时也输入:“pip3”。呵呵。