Так же, как и в заголовке. Я хочу написать скрипт, который ведет себя по-разному в зависимости от того, работает ли он в окне консоли или в режиме IDLE. Есть ли объект, который существует только при запуске в режиме бездействия, который я могу проверить? Переменная среды?
Я использую Python 2.6.5 и 2.7 в Windows.
Ответы, данные до сих пор работают. Но я ищу официальный способ сделать это или тот, который не выглядит как взломать. Если кто-то придумает, я приму это как ответ. Иначе через несколько дней я приму самый ранний ответ. Спасибо всем!
Google нашел мне это сообщение на форуме от 2003 года. С Python 3.1 (для win32) и версией IDLE, с которой он поставляется, len (sys.modules) os 47 в в командной строке, но 122 в оболочке IDLE.
Но почему тебе все равно? Код Tkinter вызывает некоторые неудобства при запуске с IDLE (поскольку последний использует сам tkinter), но в остальном я думаю, что могу с уверенностью предположить, что вам не о чем беспокоиться.
Я предлагаю получить список всех работающих кадров и проверить, присутствует ли там основной метод 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.