【问题标题】:Strange directory is prepended to my PATH奇怪的目录被添加到我的 PATH
【发布时间】:2019-09-13 17:21:47
【问题描述】:

除了我多年来一直使用的 Homebrewed Python 3 之外,我还使用 https://www.python.org/ 正式分发的 Mac pkg 安装程序安装了 Python 3。

我安装另一个 Python 3 的原因是 QGIS require the official Python 3.6,所以我自己只在终端上使用 Homebrewed 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

我不明白这种行为有两点:

  1. 我的/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
  1. /usr/libexec/path_helper -s的stdout其实如下。 /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

谁能帮我解决这个问题?

【问题讨论】:

    标签: macos path zsh


    【解决方案1】:

    我刚刚找到了一个~/.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
    

    我不知道这是什么时候创建的,但这是显而易见的原因。我删了。

    【讨论】:

    • 如果文件在你不知情的情况下突然出现,是不是有点不可思议?
    • @user1934428 实际上,我的公司提供了 Mac,出于某种原因,我让我的一位同事使用了大约一个月。我还没有确认,但我想~/.zprofile 是在机器不在我手中时创建的。
    • 为什么这会被否决?可能是一个愚蠢的错误,但值得一票否决吗?
    • 不知道,但可能是因为寻找这种效果的明显地方是检查 Zsh 启动文件。
    猜你喜欢
    • 1970-01-01
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    • 2011-07-29
    • 2018-02-21
    • 1970-01-01
    • 2016-05-06
    相关资源
    最近更新 更多