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