【发布时间】:2021-05-19 09:55:23
【问题描述】:
以下是理解我的问题的一些必要上下文(顺便说一下,我的 shell 是 /bin/bash):
~
$ alias
alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles --work-tree=$HOME'
alias ll='ls -al'
alias pip='pip3'
alias python='/usr/local/bin/python3'
~
$ which python
/usr/bin/python
~
$ which python3
/usr/local/bin/python3
~
$ python3 --version
Python 3.9.5
~
$ python --version
Python 3.9.5
~
$ ll /usr/bin/python*
lrwxr-xr-x 1 root wheel 75 Feb 1 2020 /usr/bin/python -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
lrwxr-xr-x 1 root wheel 82 Feb 1 2020 /usr/bin/python-config -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config
lrwxr-xr-x 1 root wheel 75 Feb 1 2020 /usr/bin/python2 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
lrwxr-xr-x 1 root wheel 75 Feb 1 2020 /usr/bin/python2.7 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
lrwxr-xr-x 1 root wheel 82 Feb 1 2020 /usr/bin/python2.7-config -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config
-rwxr-xr-x 1 root wheel 31488 Oct 30 2020 /usr/bin/python3
lrwxr-xr-x 1 root wheel 76 Feb 1 2020 /usr/bin/pythonw -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw2.7
lrwxr-xr-x 1 root wheel 76 Feb 1 2020 /usr/bin/pythonw2.7 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw2.7
~
$ ll /usr/local/bin/python*
lrwxr-xr-x 1 marshallmcquillen admin 38 May 18 06:14 /usr/local/bin/python3 -> ../Cellar/python@3.9/3.9.5/bin/python3
lrwxr-xr-x 1 marshallmcquillen admin 45 May 18 06:14 /usr/local/bin/python3-config -> ../Cellar/python@3.9/3.9.5/bin/python3-config
lrwxr-xr-x 1 marshallmcquillen admin 40 May 18 06:14 /usr/local/bin/python3.9 -> ../Cellar/python@3.9/3.9.5/bin/python3.9
lrwxr-xr-x 1 marshallmcquillen admin 47 May 18 06:14 /usr/local/bin/python3.9-config -> ../Cellar/python@3.9/3.9.5/bin/python3.9-config
我的问题:
-
为什么我的 python 别名不起作用? (我也试过在我的
~/.bash_profile中添加alias python=python3,但它仍然没有指向正确的二进制文件) -
为什么
python链接指向(似乎是)python2.7 二进制文件,但版本显示为 3.9.5? -
#1 或#2 的答案是否与the difference between
brew installandpip3 install有某种关系?
【问题讨论】:
-
当您运行程序时,系统首先从
alias获取指向python3的路径。当您使用which时,它不会检查别名,而只会检查真实文件 - 可能使用update-alternatives设置 -
它正在为我们所看到的一切工作。当您运行
python --version时,它会输出我们期望的结果。这里真正的问题可能是"why iswhichthe wrong tool?"