当我尝试使用 swift
或 xcrun swift
运行 swift REPL 时,我收到以下 Python 错误:
Hristos-MacBook-Pro:~ Hristo$ swift
Fatal Python error: PyThreadState_Get: no current thread
Abort trap: 6
看起来 Swift 的 REPL 是用 Python 编写的。我最近安装了 pip
,它可能损坏了某些东西。我正在使用 Xcode 6.1 (A1052d) 和 OS X Yosemite。可能是什么情况?
最佳答案
我刚遇到同样的问题。上面的答案给了我一个非侵入性解决方案的提示(在我的例子中,我在路径的开头有 fink 的 python)
% PATH=/usr/bin:$PATH
% swift
此解决方案基于以下观察结果。 Fink(我假设 Macports 和可能的其他第三方 python 提供商)将它们的 bin 目录放在路径的开头。这可以通过在命令行中调用 python 来查看:
% which python
/sw/bin/python
这是我遇到的问题,导致我寻找解决方案:
% swift
Fatal Python error: PyThreadState_Get: no current thread
[1] 19219 abort swift
通过在 shell 级别更改 $PATH 变量,可以在不更改 future shell session 的默认条件的情况下避免该问题:
% PATH=/usr/bin:$PATH
% which python
/usr/bin/python
现在可以了:
% swift
Welcome to Swift! Type :help for assistance.
1>
一个更永久的解决方案(除了永久更改 $PATH 变量元素的顺序之外)可能是在一个人的 shell 点文件中包含以下别名(或等效函数):
alias swift="PATH=/usr/bin:$PATH swift"
关于python - Swift REPL 抛出 python 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27203896/