在macOS Catalina中使用python3更改python语句的问题

时间:2019-10-08 11:05:00

标签: python macos terminal macos-catalina

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

3 个答案:

答案 0 :(得分:1)

首先,确认默认的“ python”链接到什么,以便您可以引用它,并确保与外壳程序一致:

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文件(look here for historical reasons behind the files used),并添加一个带有别名的行-例如,快速方法:

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

将为您启动的下一个外壳程序设置新的别名,或者打开一个新的终端窗口并提供配置文件的源以使其活动。例如。在bash中:

source ~/.bash_profile

或者,将符号链接更改为默认指向python3,并记住更改(我使用一个简单的切换脚本,否则安装缺少的python2软件包都会导致对configure脚本的抱怨,该脚本直接使用python symlink ):

#!/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

答案 1 :(得分:1)

Catalina现在使用zsh作为默认值,而不是Bash。

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

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

答案 2 :(得分:0)

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

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

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