Всем привет!
Сегодня мы разберем очень короткий, но полезный лайфхак о том, что нужно сделать, чтобы не вводить, к примеру, «import pandas as pd» по 10 раз в день.
Также не будем забывать, и автоматизировать и сокращать всё эффективно:
Для нашего лайфхака нужно:
Для наглядности, давайте всё визуализируем. Во-первых, местоположение start.py:
Здесь содержимое моего файла start.py:
Теперь, когда я запускаю сеанс IPython, я вижу:
Также, мы можем подтвердить, что библиотеки были загружены, проверяя globals ():
На этом всё. Теперь мы можем использовать наш интерактивный сеанс без необходимости вводить команды для загрузки этих библиотек!
Если у кого-то есть, что дополнить или поделиться лайфхаками — пишите в комментариях.
Всем знаний!
Сегодня мы разберем очень короткий, но полезный лайфхак о том, что нужно сделать, чтобы не вводить, к примеру, «import pandas as pd» по 10 раз в день.
Также не будем забывать, и автоматизировать и сокращать всё эффективно:
Для нашего лайфхака нужно:
- Перейти к ~/.ipython/profile_default;
- Создать папку с именем startup, если ее там еще нет;
- Добавить новый файл Python с именем start.py;
- Поместите ваш любимый импорт в этот файл;
- Запустить IPython или Jupyter Notebook, и ваши любимые библиотеки будут автоматически загружаться каждый раз!
Для наглядности, давайте всё визуализируем. Во-первых, местоположение start.py:
Здесь содержимое моего файла 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, я вижу:
Также, мы можем подтвердить, что библиотеки были загружены, проверяя 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/. Они выполняются в лексикографическом порядке при запуске IPython.
- Если вы выполняете это в Jupyter, вы не получите ячейку с данными импорта, поэтому при совместном использовании Jupyter обязательно скопируйте содержимое start.py в первую ячейку. Это позволит людям узнать, какие библиотеки вы используете.
- Если вы работаете на нескольких компьютерах, вам придется повторить шаги. Убедитесь, что вы используете тот же скрипт start.py, чтобы получить тот же импорт!
- Спасибо ответу из Stack Overflow и официальной документации.
Если у кого-то есть, что дополнить или поделиться лайфхаками — пишите в комментариях.
Всем знаний!
Подпишитесь на канал «Нейрон» в Телеграме (@neurondata) ? там свежие статьи и новости из мира науки о данных появляются каждую неделю. Спасибо всем, кто помогает и делится полезными ссылками, особенно Виталию Орешкину и Андрею Бондаренко.
Комментарии (2)
sin-mike
26.05.2019 07:32У этого несколько минусов
1. Не работает для совместной работы
2. Неудобно для многих окружений, потому что этот стартап файл привязан к конкретному ipython, поэтому в самом файле надо чекать окружение, в котором запускается
3. Если что-то валится в середине стартапа, то он это делает бесшумно
В общем, для воспроизводимости туда удобно засовывать только стандартные вещи, которые есть «у всех»: sys, os, %matplotlib notebook
ps: файл может называется .ipy и в него можно засовывать magic-команды
lair
… а потом вы чекините свой ноутбук в версионник, его забирает коллега — и у того ничего не работает. Кру-то!
(да, я знаю, что в статье написано "скопируйте", ну так и какой тогда смысл?)