1

默认情况下,当我在终端中键入 python 时,它会使用 2.7.x 版本进入 python。在最旧的 macOS 版本中,一旦我输入“alias pyhton=python3”,它就会永远改变,每次我输入 python 时,它都会转到 python 版本 3。但在 macOS Catalina 中,我每次打开终端时都需要输入语句。有什么建议吗?

4

3 回答 3

2

首先,确认您的默认“python”链接到什么,以便您可以引用它,并确保 which 和 shell 一致:

user:~> which python
/usr/bin/python
user:~> type python
python is /usr/bin/python
user:~> ls -la /usr/bin/python
lrwxrwxrwx 1 root root 7 Oct  8 13:26 /usr/bin/python -> python2

现在您可以添加一个别名以在您的 shell 中覆盖它...。

按照 shahaf 的建议,为 bash 打开 ~/.bash_profile 文件或为 zsh 打开 ~/.zshrc 文件(在此处查看所用文件背后的历史原因),并添加带有别名的行 - 例如,快速方法:

echo "alias python=/usr/bin/python3" >> ~/.bash_profile
echo "alias python=/usr/bin/python3" >> ~/.zshrc

将为您启动的下一个 shell 设置新别名,或者打开一个新的终端窗口并获取配置文件以使其处于活动状态。例如。在 bash 中:

source ~/.bash_profile

或者,将符号链接更改为默认指向 python3,并记住更改(我使用简单的切换脚本,否则任何缺少 python2 包的安装都可能导致对直接使用 python 符号链接的配置脚本的抱怨):

#!/bin/bash
TOGGLE=$HOME/.python3Active
if [ ! -e $TOGGLE ]; then
        touch $TOGGLE
        sudo ln -fs python3 /usr/bin/python
        ls -la /usr/bin/python
        echo "Press any key to continue..."
        read
else
        rm $TOGGLE
        sudo ln -fs python2 /usr/bin/python
        ls -la /usr/bin/python
        echo "Press any key to continue..."
        read
fi
于 2019-10-08T11:28:08.757 回答
1

Catalina 现在zsh默认使用而不是 Bash。

要验证您使用的是哪个 shell ,请echo $0在终端中输入

添加alias python='python3'到 $HOME/.zshrc

于 2019-10-09T04:14:40.673 回答
0

您将不得不编辑终端的配置文件,通常位于~/.profile

在此处添加别名行,启动终端会话时会加载此文件并导出环境变量和方法,以便在该会话中可以访问它们

我建议使用更强大、更强大的终端增强功能,例如Z-Shell

于 2019-10-08T11:17:16.043 回答