如何在 OS X 上将 Python 的默认版本设置为 3.x?[重复]
- 2024-12-19 09:24:00
- admin 原创
- 124
问题描述:
我正在运行 Mountain Lion,基本默认 Python 版本是 2.7。我下载了 Python 3.3 并想将其设置为默认值。
现在:
$ python
version 2.7.5
$ python3.3
version 3.3
我该如何设置它以便每次运行时都$ python
打开 3.3?
解决方案 1:
更改系统范围内默认的 python 可执行文件的版本可能会破坏一些依赖于 python2 的应用程序。
但是,您可以在大多数 shell 中为命令添加别名,因为 macOS 中的默认 shell(10.14 及以下版本中的 bash;10.15 中的 zsh)具有相似的语法。您可以alias python='python3'
在您的 shell 中输入~/.profile
,然后~/.profile
在您的~/.bash_profile
和/或您的~/.zsh_profile
shell 中输入 source,如下所示:
[ -e ~/.profile ] && . ~/.profile
这样,你的别名就可以跨 shell 起作用了。
这样,python
命令现在调用。如果您偶尔python3
想调用“原始”python(指python2command python
),则可以使用,这将保持别名不变,并且在所有 shell 中均可使用。
如果您更频繁地启动解释器(我会),那么您也可以创建更多别名来添加,即:
alias 2='python2'
alias 3='python3'
提示:对于脚本,不要使用如下的 shebang:
#!/usr/bin/env python
使用:
#!/usr/bin/env python3
这样,系统将使用 python3 来运行 python可执行文件。
解决方案 2:
您可以通过符号链接解决它。
unlink /usr/local/bin/python
ln -s /usr/local/bin/python3.3 /usr/local/bin/python
解决方案 3:
打开~/.bash_profile文件。
vi ~/.bash_profile
然后按如下方式输入别名:
alias python='python3'
现在保存文件,然后运行~/.bash_profile文件。
source ~/.bash_profile
恭喜!现在,你可以通过输入python来使用 python3 。
python --version
Python 3.7.3
解决方案 4:
我也遇到了这个问题,所以我想我应该发布一个更新的答案。请注意,这仅适用于基于 Mac 的设置(我还没有在 Windows 或任何 Linux 版本上尝试过)。实现此操作的最简单方法是通过Brew安装 Python 。如果您没有安装 brew,则需要先安装。安装后,在终端中执行以下操作:
brew install python
这将安装 Python 3。安装完成后,运行以下命令:
ls -l /usr/local/bin/python*
您将看到 brew 创建的指向其 Python 安装的所有链接。它看起来如下所示:
lrwxr-xr-x 1 username admin 36 Oct 1 13:35 /usr/local/bin/python3@ -> ../Cellar/python/3.7.4_1/bin/python3
lrwxr-xr-x 1 username admin 43 Oct 1 13:35 /usr/local/bin/python3-config@ -> ../Cellar/python/3.7.4_1/bin/python3-config
lrwxr-xr-x 1 username admin 38 Oct 1 13:35 /usr/local/bin/python3.7@ -> ../Cellar/python/3.7.4_1/bin/python3.7
lrwxr-xr-x 1 username admin 45 Oct 1 13:35 /usr/local/bin/python3.7-config@ -> ../Cellar/python/3.7.4_1/bin/python3.7-config
lrwxr-xr-x 1 username admin 39 Oct 1 13:35 /usr/local/bin/python3.7m@ -> ../Cellar/python/3.7.4_1/bin/python3.7m
lrwxr-xr-x 1 username admin 46 Oct 1 13:35 /usr/local/bin/python3.7m-config@ -> ../Cellar/python/3.7.4_1/bin/python3.7m-config
此示例中的第一行显示python3
符号链接。要将其设置为默认python
符号链接,请运行以下命令:
ln -s -f /usr/local/bin/python3 /usr/local/bin/python
类似地,你也可以设置 pip 符号链接
ln -s -f /usr/local/bin/pip3 /usr/local/bin/pip
您必须重新加载当前终端 shell,才能在该 shell 中使用该新符号链接。运行以下命令重新加载 shell:
exec $SHELL -l
现在一切就绪。现在,您可以执行以下操作:
which python
它应该显示:
/usr/local/bin/python
所有新打开的 shell 会话将(应该)自动使用新的符号链接。要测试这一点,请打开一个新的终端 shell 并运行以下命令:
python --version
解决方案 5:
进入终端类型:
alias python=python3.x
这将设置默认 python 为 python3.x
解决方案 6:
这对我有用。我添加了别名并重新启动了终端:
alias python=/usr/local/bin/python3
解决方案 7:
以下对我有用
cd /usr/local/bin
mv python python.old
ln -s python3 python
解决方案 8:
转到“应用程序”,进入“Python”文件夹,应该有一个名为“Update Shell Profile.command”或类似的 bash 脚本。运行该脚本,它应该会执行此操作。
更新:看起来你不应该更新它:如何更改默认的 python 版本?
解决方案 9:
我相信大多数来到这里的人们都是通过 iterm 或其他方式使用 ZSH 的,这就引出了这个答案。
您必须添加/修改您的命令~/.zshrc
。
解决方案 10:
$ sudo ln -s -f $(which python3) $(which python)
完毕。
解决方案 11:
Mac 用户只需在终端上运行以下代码
brew switch python 3.X.X
3.xx应该是新的python版本。
这将更新所有系统链接。
更新
对于较新版本的 MAC 使用
brew link python 3.X.X
解决方案 12:
建议将 python 别名为 python3,这将导致设置 python 版本的虚拟环境出现问题(例如:pyenv)。使用 pyenv,您可以像这样全局设置版本:
pyenv global 3.8.2
然后在任何特定项目中,您可以创建一个包含 python 版本的 .python-version 文件:
pyenv local 2.7.1
在我看来,这是在系统上管理系统的多个 Python 版本的最佳方式。
解决方案 13:
在 MacOS 上
步骤 1:通过以下方式将 Python 升级到最新版本:$ brew upgrade python
步骤 2:返回主页:$ cd
步骤 3:打开 .bash_profile
$ vi .bash_profile
为 Python 3.8 设置 PATH
PATH="/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}" 导出路径
步骤 4:保存文件。然后通过以下方式编译:
$..bash_profile
步骤5:检查python版本:
$ python -V
步骤6:就这样。
解决方案 14:
我认为当您安装 Python 时,它会将导出路径语句放入您的 ~/.bash_profile 文件中。因此,如果您不打算再使用 Python 2,则可以从那里删除该语句。如上所述的 Alias 也是一种很好的方法。
以下是如何从 ~/.bash_profile 中删除引用 - vim ./.bash_profile - 删除引用(又称为:export PATH="/Users/bla/anaconda:$PATH") - 保存并退出 - source ./.bash_profile 保存更改
解决方案 15:
根据我的经验,这是最简单的方法。(如果你的 Mac 上安装了 brew)。
从你的终端尝试这个:
brew install python3
然后在终端上运行以下命令:
ls -l /usr/local/bin/python*
提示:
*(记下终端上显示的 python 版本 3.8 或 3.9。下一步需要用到它)。例如在我的情况下是:*
lrwxr-xr-x 1 个用户 管理员 24 五月 7 14:33 /usr/local/bin/python -> /usr/local/bin/python3.9
现在在你的终端上运行以下命令:
ln -s -f /usr/local/bin/python3.9 /usr/local/bin/python
(其中 3.9 是使用上一个命令在终端上显示的版本)
完成了!
要测试你的默认 Python 版本:
关闭当前终端或启动一个新终端并
运行以下命令:
python --version
祝您编码愉快!
解决方案 16:
对我来说,解决方案是使用 PyCharm 并将默认的 python 版本设置为我需要使用的版本。
安装 PyCharm 并转到文件 ==> 新项目的首选项,然后选择项目所需的解释器,在本例中为 python 3.3
解决方案 17:
如果您使用 macports,则无需使用别名或环境变量,只需使用 macports 已经提供的方法,如本问答所述:
如何:Macports 选择 python
总结:
sudo port select --set python python27
解决方案 18:
我不确定这在 OS X 上是否可用,但在 Linux 上我会使用该module
命令。 请参阅此处。
正确设置模块文件,然后将类似这样的内容添加到您的 rc 文件(例如 ~/.bashrc):
module load python3.3
这样,当您登录时,您的路径就会根据需要切换,而不会影响任何系统默认值。
解决方案 19:
如果你正在使用 macports,那么有一个更简单的方法:
跑步:
port install python37
安装后,设置默认:
sudo port select --set python python37
sudo port select --set python3 python37
重新启动cmd窗口,完成。
解决方案 20:
嗯...这个问题有点老了。但仍然值得一个好的答案。
好的一个是《你不想触碰 Mac 上的默认 Python》。
通过 Homebrew 或其他方式安装您需要的任何 Python 版本,并在虚拟环境中使用它。虚拟环境通常被认为是垃圾,但它仍然比在系统范围内(macOS 可能会保护自己免受此类操作的影响)或用户范围内、bash 范围内更改 Python 版本要好得多……无论如何。忘掉默认的 Python 吧。使用像 venv 这样的游乐场是您的操作系统最感激的事情。
例如,许多现代 Linux 发行版都删除了开箱即用的 Python2,只在系统中保留 Python3。但每次你尝试安装带有 Python2 依赖项的旧版本时……希望你能理解我的意思。优秀的开发人员不会在意这些。优秀的开发人员会使用他们想要的 Python 版本创建干净的操场。
解决方案 21:
如果您正在使用virtualenvwrapper
,您可以使用找到它which virtualenvwrapper.sh
,然后使用或任何其他编辑器打开它,vim
然后更改以下内容
# Locate the global Python where virtualenvwrapper is installed.
if [ "${VIRTUALENVWRAPPER_PYTHON:-}" = "" ]
then
VIRTUALENVWRAPPER_PYTHON="$(command which python)"
fi
将该行更改VIRTUALENVWRAPPER_PYTHON="$(command which python)"
为VIRTUALENVWRAPPER_PYTHON="$(command which python3)"
。