xcrun: error: invalid active developer path: how to fix
有时你在Mac OS中输入命令行命令时,会遇到类似上述的错误。 解决方法很简单。 你需要知道的是错误发生的原因,如果你是研究开发的,我建议在继续前行之前阅读原因部分。
1. 解决方法
让我们从解决方法开始。
在你的终端中输入以下内容并按回车键。
xcode-select --install
在打开的窗口中,点击安装按钮。
最后,点击许可窗口中的OK按钮,安装将继续进行。 安装完成后,键入同样的命令,它将无错误地运行。
2. 原因
现在我们已经解决了这个错误,让我们来看看它为什么会发生。从错误本身开始,下面是它的样子。
$ python3
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
我输入了python3
命令,但错误信息说没有xcrun
。xcrun
是从哪里来的?
2.1. xcrun
manpagez是这样解释的: (opens in a new tab)
为了给你一个概念,xcrun
做的是运行Xcode使用的Python版本,从我的机器上安装的许多Python中选取,或者用Xcode的
CommandLineTools来运行安装在我机器上的Python版本。
xcrun
运行的版本是Mac OS认为目前最适合我们操作系统的版本。
当然,你的想法胜过系统的想法。
所以xcrun在探索了所有的 PATH
后运行。
对于那些不知道的人,值得解释一下CLI命令和PATH
之间的关系。
2.2. CLI和PATH
从CLI中运行的程序,如Python解释器,可以存在于你计算机的任何地方。
它可能在/opt/homebrew/bin/python3
,也可能在/usr/bin/python3
。
要运行这个程序,我们需要进入以/
开头的顶级目录。
PATH
是允许你省略这些前缀的目录地址。
如果你在PATH
中指定了所需的目录,计算机将自动找到并运行该文件夹中的python3
可执行程序。
我的计算机的PATH
可以通过以下命令找到。
echo $PATH
你应该看到多个路径的输出,如下图所示。
它将转到它打印的多个PATH
的开头,如果python3
可执行文件存在,它将运行它,如果它在最后不存在,它将打印一条消息说没有找到。
为了验证这个消息,让我们运行python4
,它在机器上不存在。
xcrun
所做的是找到上述所有的PATH
,然后执行它们,找到并运行为操作系统和Xcode安装的python3
可执行文件。
2.3. Mac OS的更新
CommandLineTools和Mac OS的更新是密切相关的,因为CommandLineTools本身,xcrun
是其中的一部分,是一套为Mac OS优化的应用程序。
有时Mac OS的更新包括CommandLineTools的更新。
这就产生了一个错误,导致Mac OS的更新混淆甚至重置xcrun
的目录设置。
上面的解决方法可以扭转被破坏的路径,或者修复那些在CommandLineTools的清洁安装下被初始化的程序。 这个解决方法很简单,但查找xcrun和了解更多关于Mac OS的工作方式是很有趣的。
