Автоматический импорт модулей при вводе интерпретатора python или ipython


я печатаю import numpy as np почти каждый раз, когда я запускаю интерпретатор python. Как настроить интерпретатор python или ipython, чтобы numpy автоматически импортировался?

7 87

7 ответов:

используйте переменную окружения PYTHONSTARTUP. Из официальной документации:

Если это имя читаемого файла, команды Python в этом файл выполняется перед первым приглашением отображается в интерактивном режиме режим. Файл исполняется в том же пространстве имен, где интерактивные команды выполняются так, что объекты, определенные или импортированные в него, могут быть используется без квалификации в интерактивном режиме сессия.

Итак, просто создайте скрипт python с оператором import и укажите на него переменную среды. Сказав это, помните, что "явное всегда лучше, чем неявное", поэтому не полагайтесь на это поведение для производственных сценариев.

для Ipython, см. этой учебник о том, как сделать файл ipython_config

для ipython, есть два способа достичь этого. Оба включают каталог конфигурации ipython, который находится в ~/.ipython.

  1. создайте пользовательский профиль ipython.
  2. или вы можете добавить загрузочный файл в ~/.ipython/profile_default/startup/

для простоты я бы использовал вариант 2. Все, что вам нужно сделать, это разместить .py или на ~/.ipython/profile_default/startup каталог и он будет автоматически выполнен. Так что вы могли бы просто место import numpy as np в простом файле и у вас будет np в пространстве имен вашего приглашения ipython.

Вариант 2 фактически будет работать с пользовательским профилем, но использование пользовательского профиля позволит вам изменить требования к запуску и другую конфигурацию на основе конкретного случая. Однако, если бы вы всегда как np чтобы быть доступным для вас, то во что бы то ни стало поместите его в каталог автозагрузки.

для получения дополнительной информации о конфигурации ipython. Элемент docs есть гораздо больше полное объяснение.

Я использую ~/.startup.py файл вот такой:

# Ned's .startup.py file
print("(.startup.py)")
import datetime, os, pprint, re, sys, time
print("(imported datetime, os, pprint, re, sys, time)")

pp = pprint.pprint

затем определите PYTHONSTARTUP=~/. startup.py, и Python будет использовать его при запуске оболочки.

операторы печати существуют, поэтому, когда я запускаю оболочку, я получаю напоминание о том, что она действует, и что уже было импортировано. Элемент pp ярлык очень удобно тоже...

как более простая альтернатива принятому ответу, на linux:

просто определите псевдоним, например put alias pynp='python -i -c"import numpy as np"' в свой ~/.файл bash_aliases. Затем вы можете вызвать python+numpy с помощью pynp, и вы все еще можете использовать только python с python. Поведение скриптов Python' остается нетронутым.

при создании пользовательского сценария запуска, как ravenac95предполагает это лучший общий ответ для большинства случаев, он не будет работать в условиях, когда вы хотите использовать from __future__ import X. Если вы иногда работаете в Python 2.но хотите использовать современное деление, есть только один способ сделать это. После того, как вы создадите профиль, отредактируйте profile_default (для Ubuntu это находится в ~/.ipython/profile_default) и добавить что-то вроде следующего до низа:

c.InteractiveShellApp.exec_lines = [
    'from __future__ import division, print_function',
    'import numpy as np',
    'import matplotlib.pyplot as plt',
    ]

как ravenac95 упомянул в своем ответ, вы можете либо создать пользовательский профиль или изменить профиль по умолчанию. Этот ответ-быстрый просмотр команд Linux, необходимых для import numpy as np автоматически.

если вы хотите использовать пользовательский профиль под названием numpy выполните:

ipython profile create numpy
echo 'import numpy as np' >> $(ipython locate profile numpy)/startup/00_imports.py
ipython --profile=numpy

или если вы хотите изменить профиль по умолчанию, чтобы всегда импортировать numpy:

echo 'import numpy as np' >> $(ipython locate profile default)/startup/00_imports.py
ipython

Проверьте IPython config tutorial Читать подробнее подробно о настройке профилей. Смотрите .ipython/profile_default/startup/README чтобы понять, как работает каталог автозагрузки.

по умолчанию ipython вызов

ipython --pylab --nosep --InteractiveShellApp.pylab_import_all=False

--pylab был ipython опция на некоторое время. Он импортирует numpy и (частей) matplotlib. Я добавил --Inter... опция, поэтому она не использует * импорт, так как я предпочитаю использовать явное np.....

это может быть ярлык, псевдоним или скрипт.