Какой код я могу использовать, чтобы проверить, работает ли Python в IDLE?

Так же, как и в заголовке. Я хочу написать скрипт, который ведет себя по-разному в зависимости от того, работает ли он в окне консоли или в режиме IDLE. Есть ли объект, который существует только при запуске в режиме бездействия, который я могу проверить? Переменная среды?

Я использую Python 2.6.5 и 2.7 в Windows.

Редактировать:

Ответы, данные до сих пор работают. Но я ищу официальный способ сделать это или тот, который не выглядит как взломать. Если кто-то придумает, я приму это как ответ. Иначе через несколько дней я приму самый ранний ответ. Спасибо всем!

11
задан KeJi 7 August 2010 в 21:35
поделиться

2 ответа

Google нашел мне это сообщение на форуме от 2003 года. С Python 3.1 (для win32) и версией IDLE, с которой он поставляется, len (sys.modules) os 47 в в командной строке, но 122 в оболочке IDLE.

Но почему тебе все равно? Код Tkinter вызывает некоторые неудобства при запуске с IDLE (поскольку последний использует сам tkinter), но в остальном я думаю, что могу с уверенностью предположить, что вам не о чем беспокоиться.

6
ответ дан 3 December 2019 в 04:12
поделиться

Я предлагаю получить список всех работающих кадров и проверить, присутствует ли там основной метод Idle.

def frames(frame = sys._getframe()):
    _frame = frame
    while _frame :
        yield _frame
        _frame = _frame.f_back
import idlelib.PyShell
print(idlelib.PyShell.main.func_code in [frame.f_code for frame in frames()])

функция frames генерирует работающие кадры в момент своего объявления, поэтому вы можете проверить, не было ли здесь idle.

1
ответ дан 3 December 2019 в 04:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: