【问题标题】:How does my Python point to Python3 without setting PATH?我的 Python 如何在不设置 PATH 的情况下指向 Python3?
【发布时间】:2021-11-05 19:40:28
【问题描述】:

我的 mac 默认自带 Python2。我使用 Homebrew (brew install python3) 安装了 Python3,并做了 something 以使 python 指向终端中的 python3。不幸的是,我不记得我做了什么(我一定是随便复制并粘贴了几行命令才能将python 设置为python3)。现在我想找出我做了什么被遗忘了,我在我的 $PATHS、我的 .bash_profile.zhrc 等中到处寻找但我没有为 python 或 python3 找到任何设置 - 没有写入路径,也没有别名。

这怎么可能?我还能做什么?

我的 Python 版本:

my-mac:~ myname$ python2

Python 2.7.16 (default, Feb 28 2021, 12:34:25) 
[GCC Apple LLVM 12.0.5 (clang-1205.0.19.59.6) [+internal-os, ptrauth-isa=deploy on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

my-mac:~ myname$ python

Python 3.9.6 (default, Jun 29 2021, 05:25:02) 
[Clang 12.0.5 (clang-1205.0.22.9)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

这是我所有的路径

my-mac:~ myname$ echo "${PATH//:/$'\n'}"

/Users/myname/.rvm/gems/ruby-1.9.3-p327/bin
/Users/myname/.rvm/gems/ruby-1.9.3-p327@global/bin
/Users/myname/.rvm/rubies/ruby-1.9.3-p327/bin
/Users/myname/.rvm/bin
/usr/local/mysql/bin
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/Library/TeX/texbin
/Users/myname/Qt/5.5/clang_64/bin/

检查 Python 和 Python3 路径:

my-mac:~ myname$ type python
python is hashed (/usr/local/bin/python)

my-mac:~ myname$ type python3
python3 is /usr/local/bin/python3

我的 .bash_profile.zshrc 内容:

my-mac:~ myname$ nano .bash_profile

export PATH="/usr/local/mysql/bin:$PATH"
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

my-mac:~ myname$ nano .zshrc

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting

【问题讨论】:

    标签: python macos terminal


    【解决方案1】:

    brew 将二进制文件安装在 PATH 中 /usr/bin 之前的 /usr/local/bin。 (brew 更新 PATH 以在系统 /usr/bin 之前包含它)。您无需执行任何操作即可将 brew 安装的应用程序放入您的 PATH,它已经存在。

    试试which python 看看它指向哪里。这是 MacOS 默认解释器的示例。

    ➜ which python
    /usr/bin/python
    ➜ python
    Python 2.7.16 (default, Jun 18 2021, 03:23:53)
    [GCC Apple LLVM 12.0.5 (clang-1205.0.19.59.6) [+internal-os, ptrauth-isa=deploy on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> ^D
    

    如果想让python指向系统的Python 2.x,可以删除/usr/local/bin/python。然后要使用 Python3,您需要指定 python3。 (位于/usr/local/bin/

    您可以列出包含指向实际二进制文件的符号链接的 /usr/local/bin

    ➜ ll /usr/local/bin | grep python
    lrwxr-xr-x  1 usr  admin    38B Sep  5 12:27 python3 -> ../Cellar/python@3.9/3.9.6/bin/python3
    lrwxr-xr-x  1 usr  admin    45B Sep  5 12:27 python3-config -> ../Cellar/python@3.9/3.9.6/bin/python3-config
    lrwxr-xr-x  1 usr  admin    40B Sep  5 12:27 python3.9 -> ../Cellar/python@3.9/3.9.6/bin/python3.9
    

    【讨论】:

    • 啊,我明白了。所以mac自带的默认python2是安装在/usr/bin中,而Homebrew安装了python3/usr/local/bin。我在/usr/local/bin 中创建的python 链接到/usr/local/bin/python3,它位于默认/usr/bin 路径之前,因此/usr/local/bin 中创建的python 在/usr/bin/python 中的系统python(2) 之前作为python3 执行。
    • 我应该保持当前的方式(PATH 排序)还是使用别名更好?
    • 保持这种状态,否则您需要为使用 brew 安装的每个软件包设置一个别名。如果您希望python 引用您的系统解释器,只需删除符号链接/usr/local/bin/python
    猜你喜欢
    • 2022-11-18
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 2015-02-11
    相关资源
    最近更新 更多