Edited at

IPython起動時にいつも使うモジュールをimportする設定


やりたいこと

いつも使うモジュールを毎回importするのがめんどくさいので、起動時にimportしといてもらいたい。


tl;dr

~/.ipython/profile_default/hoge.py以下にimport部分を書いておく。


IPython startup directory

たぶん、~/.ipython/profile_default/ここにディレクトリがある。

そこにREADMEがあって、

1. ここにある.py.ipyファイルを実行前に読み込んでくれる。

2. ファイル名の辞書順で実行してくれる。

的なことが書いてある。


使ってみる

適当に~/.ipython/profile_default/00-startup.pyに以下を書く。


~/.ipython/profile_default/00-startup.py

from collections import Counter

import pickle

def pload(fname):
return pickle.load(open(fname, 'rb'))

def pdump(object, fname):
pickle.dump(object, open(fname, 'wb'))


ipython起動して、簡単にテスト


test.

$ ipython

In [1]: pdump([1,2,3], "hoge")

In [2]: pload("hoge")
Out[2]: [1, 2, 3]

In [3]: Counter("HJKLHJKLLKJLJKJKJLKJHKJJLHKLJLK")
Out[3]: Counter({'H': 4, 'J': 10, 'K': 9, 'L': 8})



その他

入れすぎたり、重い処理を書くと起動が遅くなるから注意。

jupyter notebook, jupyter labとかも同じ設定でいけると思う。

いちおうipython hoge.pyってやれば、事前にimportしてからhoge.pyを実行くれる。

普通のpythonで起動するインタラクティブシェルの場合は環境変数のPYTHONSTARTUPにファイルのパスを設定すればいい。 https://docs.python.org/ja/3/using/cmdline.html#envvar-PYTHONSTARTUP