bash - 为什么/usr/local/bin/python3 的链接与 "which python3"的路径不同?

标签 bash macos python-3.6 python-3.7

我之前安装了python 3.6,今天安装了python 3.7.4。当我输入python3时在命令中,它打开python 3.6,我想将其更改为python 3.7.4。

which python3显示/Library/Frameworks/Python.framework/Versions/3.6/bin/python3 ,

但是 /usr/local/bin/ 中的链接是 : python3 -> ../../../Library/Frameworks/Python.framework/Versions/3.7/bin/python3

pip3的情况也是如此。为什么? ?

我该如何更改which python3到Python 3.7.4?我不想使用alias .

我使用 MacOS 10.14.2

最佳答案

您的操作系统使用 PATH 环境变量来查找您写入 shell 的命令,因此,如果您输入 python3 ,它将遍历此 PATH 中列出的目录并检查是否有您的程序。它采用第一个匹配的程序并执行它,因此在您的情况下,目录 /Library/Frameworks/.../3.6/bin 位于目录 usr/local/bin 之前>,这意味着将使用 /Library/Frameworks/.../3.6/bin 中的 python3

因此,您需要更改此 PATH 变量:

export PATH="/Users/sky/Documents/software/Montage-master/bin:/usr/share/file/magic/mercurial:/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/mysql/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin"

您可以将其放入您的 ~/.bash_profile 中,以便它是永久性的,并且不需要每次打开新的终端窗口时都进行设置。

请注意,这不会自动更新您剩余 session 的路径。为此,您应该运行:

source ~/.bash_profile

关于bash - 为什么/usr/local/bin/python3 的链接与 "which python3"的路径不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57282784/

相关文章:

cookies - Cookie 错误 : Illegal Key

bash - Bash 函数中 return 和 exit 的区别

linux - 使用文件观察器解压文件的 Shell 脚本

regex - 如何在非空格文本开始之前删除前面的空格 + 正则表达式 + sed +

ios - AppStore.sync() 不恢复购买

macos - 在 OSX 中捕获媒体键(播放/暂停)

mysql - 在 Mac 上并行使用 Postgre 和 MySQL

python - 鼠标按钮按下(按住)的 Tkinter 事件?

linux - 列出除一个目录外的所有目录

python - 在Linux上使用Python模块编译GEOS 3.6.2