- PVSM.RU - https://www.pvsm.ru -

Автоматический импорт библиотек в IPython и Jupyter Notebook

Всем привет!

Сегодня мы разберем очень короткий, но полезный лайфхак о том, что нужно сделать, чтобы не вводить, к примеру, «import pandas as pd» по 10 раз в день.

Также не будем забывать, и автоматизировать и сокращать всё эффективно:

image

Для нашего лайфхака нужно:

  1. Перейти к ~/.ipython/profile_default;
  2. Создать папку с именем startup, если ее там еще нет;
  3. Добавить новый файл Python с именем start.py;
  4. Поместите ваш любимый импорт в этот файл;
  5. Запустить IPython или Jupyter Notebook, и ваши любимые библиотеки будут автоматически загружаться каждый раз!

Для наглядности, давайте всё визуализируем. Во-первых, местоположение start.py:

image

Здесь содержимое моего файла start.py:

import pandas as pd
import numpy as np

# Pandas options
pd.options.display.max_columns = 30
pd.options.display.max_rows = 20

from IPython import get_ipython
ipython = get_ipython()

# If in ipython, load autoreload extension
if 'ipython' in globals():
    print('nWelcome to IPython!')
    ipython.magic('load_ext autoreload')
    ipython.magic('autoreload 2')

# Display all cell outputs in notebook
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = 'all'

# Visualization
import plotly.plotly as py
import plotly.graph_objs as go
from plotly.offline import iplot, init_notebook_mode
init_notebook_mode(connected=True)
import cufflinks as cf
cf.go_offline(connected=True)
cf.set_config_file(theme='pearl')

print('Your favorite libraries have been loaded.')

Теперь, когда я запускаю сеанс IPython, я вижу:

image

Также, мы можем подтвердить, что библиотеки были загружены, проверяя globals ():

globals()['pd']
<module 'pandas' from '/usr/local/lib/python3.6/site-packages/pandas/__init__.py'>
globals()['np']
<module 'numpy' from '/usr/local/lib/python3.6/site-packages/numpy/__init__.py'>

На этом всё. Теперь мы можем использовать наш интерактивный сеанс без необходимости вводить команды для загрузки этих библиотек!

На заметку

  • Файл может быть назван как угодно (start.py просто легко запомнить), а также вы можете иметь несколько файлов startup/. Они выполняются в лексикографическом порядке [1] при запуске IPython.
  • Если вы выполняете это в Jupyter, вы не получите ячейку с данными импорта, поэтому при совместном использовании Jupyter обязательно скопируйте содержимое start.py в первую ячейку. Это позволит людям узнать, какие библиотеки вы используете.
  • Если вы работаете на нескольких компьютерах, вам придется повторить шаги. Убедитесь, что вы используете тот же скрипт start.py, чтобы получить тот же импорт!
  • Спасибо ответу из Stack Overflow [2]и официальной документации [3].

Если у кого-то есть, что дополнить или поделиться лайфхаками — пишите в комментариях.

Всем знаний!

Подпишитесь на канал «Нейрон» в Телеграме [4] (@neurondata) ― там свежие статьи и новости из мира науки о данных появляются каждую неделю. Спасибо всем, кто помогает и делится полезными ссылками, особенно Виталию Орешкину и Андрею Бондаренко.

Автор: Rushan

Источник [5]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/python/318780

Ссылки в тексте:

[1] лексикографическом порядке: https://stackoverflow.com/questions/45950646/what-is-lexicographical-order

[2] ответу из Stack Overflow : https://stackoverflow.com/questions/11124578/automatically-import-modules-when-entering-the-python-or-ipython-interpreter/11124846#11124846

[3] официальной документации: https://ipython.readthedocs.io/en/stable/interactive/tutorial.html#startup-files

[4] Телеграме: http://t.me/neurondata

[5] Источник: https://habr.com/ru/post/453436/?utm_source=habrahabr&utm_medium=rss&utm_campaign=453436