Как заставить IDLE автоматически импортировать модули при запуске?

Часто, когда я использую оболочку IDLE, я импортирую модуль pickle. Можно ли сделать так, чтобы он автоматически импортировал pickle при запуске?


person H3dgehog    schedule 01.09.2014    source источник
comment
@Burhan Khalid: не дубликат, поскольку это решение предназначено для оболочки Python, а не простоя. Эти решения не работают на холостом ходу.   -  person Martin Tournoij    schedule 01.09.2014
comment
@Burhan Khalid: я основной разработчик CPython и в настоящее время главный разработчик Idle. Ковровый курильщик прав; это не дубликат. Пользовательский код не выполняется в основном модуле. Вот почему обычные решения Python для выполнения кода в модуле main бесполезны. На самом деле, они могут быть даже опасны в смысле отключения Idle. Пользовательский код вместо этого выполняется в отдельном пространстве имен, предназначенном для имитации main. Поэтому требуются отдельные средства для воздействия на среду пользовательского кода.   -  person Terry Jan Reedy    schedule 15.09.2014


Ответы (1)


Вы можете использовать аргумент -c или -r:

От idle -h:

-c cmd     run the command in a shell, or
-r file    run script from file

Например:

idle -c 'import pickle, sys'

Or:

idle -r ~/my_startup.py

Где my_startup.py может содержать:

import pickle, sys

Вы можете либо создать псевдоним оболочки, чтобы всегда использовать его, либо создать отдельный скрипт; процедура для этого отличается в зависимости от вашей ОС и оболочки.

person Martin Tournoij    schedule 01.09.2014
comment
Согласно моему тесту с использованием -c import itertools, эффект исчезает при перезапуске оболочки, как при запуске файла из редактора. У меня есть идея частично исправить это, запустив файлы в отдельном процессе и оставив только интерактивную оболочку, но это в лучшем случае в будущем. - person Terry Jan Reedy; 15.09.2014