在 Mac OS X 上安装了 Python 3,但它仍然是 Python 2.7
Posted
技术标签:
【中文标题】在 Mac OS X 上安装了 Python 3,但它仍然是 Python 2.7【英文标题】:Installed Python 3 on Mac OS X but its still Python 2.7 【发布时间】:2015-05-09 09:20:06 【问题描述】:我目前在我的 MacBook Pro 上运行 OS X Yosemite (10.10.2)... 默认情况下,Apple 在 Yosemite 上提供 Python 2.7.6。
刚刚下载并运行了 Python 3 的安装程序:python-3.4.3-macosx10.6.pkg
当我打开终端并输入python
时,出现了这样的结果:
Python 2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
问题:
-
有人知道 Python 3.4.3 解释器的安装位置吗?
在将诸如 PYTHON_HOME 之类的全局环境变量设置为已安装 Python 3.4.3 的位置之前,我是否需要卸载 Python 2.7.3(如果需要,我该怎么做)?
【问题讨论】:
【参考方案1】:尝试输入python3
而不仅仅是python
。
【讨论】:
【参考方案2】:虽然@rhombidodedecahedron 的回答简明扼要,@Nacho Izquierdo 完美地解决了您的第一个问题,但我的回答旨在更详细地回答您的第二个问题:
应该不卸载 Mac OS X 自带的 Python 2.7;它由 Apple 提供,是在 OS X 上运行的应用程序所必需的。它存储在 /System/Library/Frameworks/..
中。如果将其删除,则必须重新安装 Mac OS X。
希望对您有所帮助!重申@rhombidodedecahedron 和@Nacho Izquierdo 给出的答案,如果您想使用该版本,请单独安装Python 3.x 并使用python3
。
Python 2.7 是标准,Python 3.x 是未来。
【讨论】:
【参考方案3】:你不应该做的事-
将默认 python 二进制文件移动到未使用的名称
$ sudo mv /usr/bin/python /usr/bin/python2
然后将新的二进制文件移动到默认路径
$ sudo mv $PATHTOBINARY/python3 /usr/bin/python
可以做但不应该做的事情
由于我默认使用zsh,所以我将以下内容放入.zshrc
文件中:
$ echo "alias python=/usr/local/bin/python3.7" >> ~/.zshrc
如果您使用默认的 Bash shell,您可以将相同的文本附加到您的 .bashrc
:
$ echo "alias python=/usr/local/bin/python3.7" >> ~/.bashrc
这可行,但不是推荐的方式,因为将来对 Python 进行更新会很困难。这意味着我们必须手动下载新文件,因为 Python 不包含用于更新的命令行方式。
什么是正确的方法
所有 Python 开发的基本前提是永远不要使用系统 Python。您不希望 Mac OS X 的“默认 Python”成为“python3”。
建议使用pyenv
来管理 Python 环境。
$ brew install pyenv
$ pyenv install 3.7.3
$ pyenv global 3.7.3
$ pyenv version
刷新当前终端并检查
$ python -V
应该给Python 3.7.3
这样你就可以走了。
供进一步参考 - https://opensource.com/article/19/5/python-3-default-mac
【讨论】:
这不起作用是什么意思?我正在尝试运行 3.5.1 并收到此错误:make: *** No targets specified and no makefile found。停止。 谢谢。 pyenv 效果很好,但一定要像github.com/pyenv/pyenv#understanding-path 一样将它填充到 PATH 的前面 “刷新当前终端”这一步对我来说不太合适。python -V
仍在向我展示 2.7.6
。为了让它工作,我必须通过在我的~/.bash_profile
中添加eval "$(pyenv init -)"
来初始化 pyenv。我将它添加到文件的末尾。然后我重新获取了 bash 配置文件,并在再次运行 python -V
时,我现在正确地看到了 3.7.6
。这个 github 问题解决方案帮助了我:github.com/pyenv/pyenv/issues/849
不幸的是,即使遵循eval "$(pyenv init -)"
建议,python -V
仍然会导致 Python 2.7.16 而不是刚刚安装的 3.9.7
@du-it 不确定您是否找到了解决方法,但我遇到了同样的问题并且能够通过将以下内容添加到 ~/.zprofile
来解决:export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init --path)"
然后运行 source ~/.zprofile
或重启终端【参考方案4】:
因为我知道我只会使用 python3,所以我将这两行添加到 .bash_profile 文件中:
alias python="python3" # to use python3 rather than python2.7
alias idle="idle3" # to use python3 idle rather than 2.7
【讨论】:
我在结尾添加了 & 以便 shell 可以免费使用... alias python="python3&" , alias idle="idle3&"【参考方案5】:经过几个小时的链接、取消链接、卸载和安装 python 以获得版本回调 python 3.8.5 而不是 python 2.7 将这两行添加到上面由 Sherif Shendidy 回答的 .bash_profile 文件中对我有用。
alias python="python3" # to use python3 rather than python2.7
alias idle="idle3" # to use python3 idle rather than 2.7
【讨论】:
【参考方案6】:在 OS X El Capitan 版本中,您可以在以下位置找到解释器:/opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4
通过将此路径拖入终端并按回车键,您将能够运行此版本。
为了更快地运行它,您可以通过在终端中输入来创建别名:alias python = 'python3.4'
。
【讨论】:
【参考方案7】:您可以使用pyenv 轻松做到这一点,这是一个简单的 Python 版本管理。它允许您设置特定的 Python 版本以在特定目录上运行,或者可以在使用 shell 之前更改您的版本
即
$ pyenv install 2.7.6
$ pyenv install 2.6.8
$ pyenv local 2.7.6
$ pyenv versions
system
2.6.8
* 2.7.6 (set by /home/yyuu/.pyenv/version)
【讨论】:
【参考方案8】:我在 windows 上也遇到过类似的问题。我想在 windows 上解决这个问题。
如果你已经安装了 python 2 和 python 3,
注意:安装时请确保点击"Add to environment variables"
或“添加到路径”。
在 cmd 中检查版本:
python -V
如果显示 2.x,
windows > 编辑系统环境变量 > 环境变量 > 用户变量 > 路径
点击edit
您应该注意到按某种顺序排列的一堆目录。
找到类似下面的目录:
C:\Users\some name\AppData\Local\Programs\Python\Python3.x\
单击Move up
直到此目录位于顶部。
点击ok
。
现在重新启动cmd。
输入python -V
你会发现3.x
【讨论】:
【参考方案9】:对于windows用户,我只是删除了包含python2.7的文件夹。我刚刚重新安装了 python 3.x.x,然后重新启动了我的笔记本电脑。
【讨论】:
以上是关于在 Mac OS X 上安装了 Python 3,但它仍然是 Python 2.7的主要内容,如果未能解决你的问题,请参考以下文章
在 Mac OS X 上的 python 2.7 和 python 3.5 之间切换
如何在 Mac OS X Lion 上安装 Python 库“gevent”