Вы посмотрели ipython? Это не совсем как "gui". Никакие смайлики, извините.;-), Это - довольно хорошая интерактивная оболочка для Python все же.
редактирование: Я вижу, что Вы пересмотрели свой вопрос подчеркнуть важность GUI. В этом случае IPython не был бы хорошим соответствием.
Мог бы также сохранить Вас другой тупик: Я пошел, смотря на DrPython, надеясь, что это будет подобно DrScheme PLT, который выглядит сопоставимым с примером, который Вы связали также. К сожалению, DrPython не все это во многом как DrScheme.
Базирующийся прочь ответ в дублирующемся потоке , который был для Objective C также и показал, как HockeyApp-iOS делает это, вот Быстрые 5 версий:
let isDebuggerAttached: Bool = {
var debuggerIsAttached = false
var name: [Int32] = [CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid()]
var info: kinfo_proc = kinfo_proc()
var info_size = MemoryLayout<kinfo_proc>.size
let success = name.withUnsafeMutableBytes { (nameBytePtr: UnsafeMutableRawBufferPointer) -> Bool in
guard let nameBytesBlindMemory = nameBytePtr.bindMemory(to: Int32.self).baseAddress else { return false }
return -1 != sysctl(nameBytesBlindMemory, 4, &info/*UnsafeMutableRawPointer!*/, &info_size/*UnsafeMutablePointer<Int>!*/, nil, 0)
}
// The original HockeyApp code checks for this; you could just as well remove these lines:
if !success {
debuggerIsAttached = false
}
if !debuggerIsAttached && (info.kp_proc.p_flag & P_TRACED) != 0 {
debuggerIsAttached = true
}
return debuggerIsAttached
}()