2014-11-29 2 views
0

Когда я пытаюсь запустить быстрый REPL с помощью swift или xcrun swift, я получаю следующее сообщение об ошибке Python:Swift REPL выбрасывает ошибку python?

Hristos-MacBook-Pro:~ Hristo$ swift

Fatal Python error: PyThreadState_Get: no current thread

Abort trap: 6

Это выглядит как РЕПЛ Свифта была написана на Python. Недавно я установил pip, что могло сломать что-то. Я использую Xcode 6.1 (A1052d) и OS X Yosemite. Что может быть?

Trying to run <code>swift</code>

+0

ли это определенно работает Apple Swift REPL, а не какая-то программа python? Каков результат запуска 'which swift'? – stonesam92

+0

В нем написано '/ usr/bin/swift'. Такая же ошибка python указана 'xcrun swift'. – Hristo

ответ

2

Я изменил активную версию питона (ранее питона 2,7 установлен с помощью MacPorts), и она работала:

sudo port select python python33 
2

Я просто столкнулся с той же проблемой. Выше ответ дал мне подсказку для неинвазивного решения (в моем случае, у меня есть питон Финка на голове пути)

% 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" 
+0

@smci. Я не согласен. Это обеспечивает альтернативный подход, который не навсегда изменяет конфигурацию компьютера. – Foon

+0

Быстро берет свой Python из системного пути ... вам нужно объяснить, почему. Тогда, если мой близкий знак не прав, я отступлю его. – smci

+0

Вот доказательство: zsh-%, что питон /SW/bin/питон zsh-% скор Fatal Python Ошибка: PyThreadState_Get: нет текущего потока [1] 19219 прервать быстрые zsh-% PATH =/USR/бен : $ PATH zsh-% который python /usr/bin/python zsh-% swift Добро пожаловать в Swift! Тип: помощь для помощи. 1> –

Смежные вопросы