Я просто столкнулся с той же проблемой. Выше ответ дал мне подсказку для неинвазивного решения (в моем случае, у меня есть питон Финка на голове пути)
% PATH=/usr/bin:$PATH
% swift
Это решение основывается на следующих наблюдениях. Fink (и я предполагаю, что Macports и, возможно, другие сторонние поставщики python) ставят свои каталоги bin во главе пути. Это можно увидеть, вызвав питон в командной строке:
% which python
/sw/bin/python
Это то, где я столкнулся с проблемой, что привело меня к поиску решения:
% swift
Fatal Python error: PyThreadState_Get: no current thread
[1] 19219 abort swift
Изменяя переменную $ PATH в уровень оболочки, проблема устраняется без изменения состояния по умолчанию для будущих сессий оболочки:
% PATH=/usr/bin:$PATH
% which python
/usr/bin/python
Так что теперь он работает:
% swift
Welcome to Swift! Type :help for assistance.
1>
Более постоянное решение (если не считать постоянно изменяется порядок переменных элементов $ PATH) может быть, чтобы включить в свою скорлупу dotfile следующий псевдоним (или эквивалентной функции):
alias swift="PATH=/usr/bin:$PATH swift"
ли это определенно работает Apple Swift REPL, а не какая-то программа python? Каков результат запуска 'which swift'? – stonesam92
В нем написано '/ usr/bin/swift'. Такая же ошибка python указана 'xcrun swift'. – Hristo