我使用 https://www.python.org/官方分发的Mac pkg安装程序安装了Python 3,以及我已经使用多年的自制Python 3。
我安装另一个 Python 3 的原因是 QGIS 需要官方的 Python 3.6,所以我自己只在终端上使用自制的 Python 3。因此,我希望python3
引用/usr/local/bin/python3
,但不知何故它的优先级较低。
$ which -a python3
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3
/usr/local/bin/python3
这发生在下面的最小~/.zshenv
和空~/.zshrc
.
typeset -U path
[ -x /usr/libexec/path_helper ] && eval $(/usr/libexec/path_helper -s)
setopt no_global_rcs
这将导致以下PATH
配置。
$ echo $path
/Library/Frameworks/Python.framework/Versions/3.6/bin /usr/local/bin /usr/bin /bin /usr/sbin /sbin
我不理解这种行为有两点:
- 我的
/etc
如下所示,/Library/Frameworks/Python.framework/Versions/3.6/bin
不应该出现在PATH
中。
$ ls /etc/paths.d
$ cat /etc/paths
/usr/local/bin
/usr/bin /bin
/usr/sbin
/sbin
/usr/libexec/path_helper -s
的标准实际上如下。/Library/Frameworks/Python.framework/Versions/3.6/bin
将附加到其余部分,而不是前置。
$ /usr/libexec/path_helper -s
PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Frameworks/Python.framework/Versions/3.6/bin"; export PATH
有人可以帮我解决这个问题吗?
我刚刚找到了一个包含以下内容的~/.zprofile
:
# Setting PATH for Python 3.6
# The original version is saved in .zprofile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
export PATH
我不知道这是什么时候创建的,但这是显而易见的原因。我删除它。