为什么我的$PATH(看起来)在我的终端中使用Python时不起作用?

lkaoscv7  于 2023-01-27  发布在  Python
关注(0)|答案(2)|浏览(220)

我知道这个问题有很多相关的问题,但是我还没有找到一个能帮助我的解决方案。我对使用终端相对来说是个新手,所以任何的见解都将非常感谢!
我的笔记本电脑(Mac M1)上安装了Python3.7,当我在终端输入
which python3输出是,
/usr/bin/python3
当我打字的时候,
echo $PATH输出是,
”/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Library/Apple/usr/bin:/usr/local/bin/python3
最后,当我努力的时候,
python3 --version输出是,
python3: error: can't exec '/Applications/Xcode.app/Contents/Developer/usr/bin/python3' (errno=No such file or directory)
我很困惑,因为错误中的路径不在我的$PATH中。

lbsnaicq

lbsnaicq1#

由于路径中的第一个变量是/usr/bin,所以当你运行python3时,shell会选择/usr/bin/python3。现在,这不是一个真实的的Python解释器。你可以从它的链接计数为76来判断这一点。这意味着它是同一个程序的76个不同名称中的一个!这些是Apple安装在/usr/bin中的“shim”,它只是将控制权移交给作为Xcode的一部分安装的各种开发工具。这就是为什么,当你试图运行它时,你会得到一个谈论Xcode的错误信息。
我并不完全理解这些shim是如何工作的,也不完全理解为什么Xcode安装的Python在您的系统上不可用,所以我不想深入研究这个问题(我 * 猜测 * 答案中有xcode-select的身影......)
然而,如果你已经在/usr/local层次结构中手动安装了Python,那么修正你的PATH变量,使得/usr/local/bin出现在/usr/bin之前,这可能是一个好主意。这样,当你运行python3时,你得到的是你安装的那个,而不是苹果的那个。

fdbelqdn

fdbelqdn2#

多亏了提供的信息,我找到了一个有效的解决方案。下面的路径做到了这一点:
/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin

相关问题