IPython上でpyximportを使うと、pyxファイルをimportすることができる。嬉しいことに、その場でコンパイルまでしてくれる。
ただ、importした状態でpyxファイルを書き換えても、直ちに反映されるわけではなく、通常は一度IPythonを終了して再起動する必要がある。(O'REILLYのCython本にも度々そういう箇所があるが、一度IPythonを終了するよう記述がある)
非常に面倒臭かったが、一々抜けなくても良い方法がある。
reload_support=Trueを引数に与えてpyximport.installを呼び出せば良い。
import pyximport pyximport.install(reload_support=True) import hogepyx
これでhogepyx.pyxを変更した際には
reload(hogepyx)
とすれば、再度コンパイルが走る。
こんなに便利なのにCython本に載ってないのはどういうわけだろう。機能追加が最近だったのか、実は推奨していない理由があるのか。
IPythonを開く際に自動でpyximportが動くようにしてしまうと都合が良い。
シェル上で
ipython profile create cython
するとコンフィグファイルのパスが表示されるので、そのファイルを開き、
開いたファイルに以下の4行を付け加える
c.InteractiveShellApp.exec_lines = [ 'import pyximport', 'pyximport.install(reload_support=True)' ]
IPythonを立ち上げる際に
ipython --profile=cython
とすれば、立ち上がる際にpyximportがimport、installされる。
- 作者: Kurt W. Smith,中田秀基,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/06/19
- メディア: 大型本
- この商品を含むブログ (3件) を見る