我知道这个问题有很多相关的问题,但是我还没有找到一个能帮助我的解决方案。我对使用终端相对来说是个新手,所以任何的见解都将非常感谢!
我的笔记本电脑(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中。
2条答案
按热度按时间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
时,你得到的是你安装的那个,而不是苹果的那个。fdbelqdn2#
多亏了提供的信息,我找到了一个有效的解决方案。下面的路径做到了这一点:
/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin