将 python3 设为我在 Mac 上的默认 python
Posted
技术标签:
【中文标题】将 python3 设为我在 Mac 上的默认 python【英文标题】:Make python3 as my default python on Mac 【发布时间】:2018-09-17 03:57:44 【问题描述】:我在这里要做的是将python3作为我的默认python。除了自动安装在mac上的python 2.7之外,我用python3 >自制软件。这是我关注的网站。 http://docs.python-guide.org/en/latest/starting/install3/osx/#install3-osx
我想我很好地遵循了每条指令,新安装了 xcode、命令行工具和自制软件。但这是我的小困惑。
该脚本将解释它将进行哪些更改并在安装开始前提示您。安装 Homebrew 后,在 PATH 环境变量的顶部插入 Homebrew 目录。您可以通过在 ~/.profile 文件的底部添加以下行来做到这一点
导出 PATH=/usr/local/bin:/usr/local/sbin:$PATH
我真的很困惑这是什么,但我认为我应该在 ~/.profile 文件的底部添加以下行。所以我在终端中通过 open .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 设置为 python3 python --version 在终端?
【问题讨论】:
只运行python3
(和pip3
等)有什么问题?那仍然是the recommended solution for *nix systems at least until 2020。 (如果多余的字符对您来说太多,只需将py
或py3
别名为python3
,它甚至比python
短。)或者,您是否考虑过使用venv
/virtualenv
?
同时,如果你想了解PATH
是什么,你不应该搜索与 Python 相关的资源,而应该搜索一般的 Unix 资源。 SuperUser 或 AskDifferent 可能比 *** 更相关,但实际上,你是在找人写教程,网上已经有很多更好的教程了。
这里有两种不同的用例:你的和你系统的。让macos使用安装好的2.7版本,否则会有依赖问题。如果您想在 python 中编程,我强烈建议您安装第二个专用发行版(例如 Anaconda/conda,就像上面建议的 virtualenv)。
将东西添加到PATH
两次只会让事情(一点点)变慢。 export
ing PATH
几乎可以肯定已经由系统代表您导出也没有用。
我是python的初学者,所以我只是认为它应该打印python3。那是因为网站是这么说的。如果只输入python3
没有问题,我会这样做。谢谢你们的解释。干杯:)
【参考方案1】:
可能最安全、最简单的方法是使用brew,然后只需修改您的PATH
:
第一次更新brew:
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-包),Requirement.parse('pip==19.0.3')). 这主要是我想要的,甚至来自另一个问答superuser.com/questions/324616/…,不想要别名或系统默认更改,但 Homebrew 来管理它,可能有一个选项。这很接近,但仍需要自定义别名。我也很好奇 pip 的进一步测试揭示了什么。 这只解决了一次问题。然后,一旦我关闭终端再次尝试,它又恢复到旧版本。【参考方案2】:在我们进行更改之前,我系统中的默认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
OR . ~/.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。【参考方案3】:在系统范围内更改默认 python 版本可能会破坏一些依赖于python2
的应用程序。另一种解决方案是创建一个 alias
。
如果您使用的是zsh(Mac OS
上的默认设置),请从终端运行以下命令:
echo 'alias python="python3"' >> ~/.zshrc
【讨论】:
这仅适用于终端会话,但是如果您关闭终端并重新打开终端,您将再次获得源 bashrc。有永久的解决方案吗? @BigDreamz 我不明白你所说的“永久”是什么意思? 没关系,它现在对我有用。我不得不来源 zshrc【参考方案4】:根据此 S.O. post,更改默认 Python 解释器可能会破坏一些依赖 Python 2 的应用程序。
这篇文章还提到了使用别名作为解决方案,这个link 也可能是一个很好的参考。
就我个人而言,我只是在运行脚本或进入 shell 环境之前输入“Python3”而不是“python”。
【讨论】:
我认为这是最好的选择,正如你所说:“python3”。我只需要记住在安装新模块时也输入:“pip3”。呵呵。以上是关于将 python3 设为我在 Mac 上的默认 python的主要内容,如果未能解决你的问题,请参考以下文章
ubuntu将python3设为默认后再安装支持python3.x的包