はじめに
pythonが遅くて、Cythonに手を出す人は多いかと思います。
入門書などでは、setup.pyを記述してインストールして実行しますが、開発中は、pyximportを使ったほうが効率が断然よいです。
他にも、マルチ環境(64bit,32bit環境など)で実行する際などにも、ソースでデプロイしたほうが便利だったりもするので、普段からpyximportを利用しています。
しかし、setup.pyがないと、コンパイルオプションが付けられない!
numpyのヘッダがみつからないよ!!
とお嘆きの貴兄に!
pyximportでのオプションのつけ方
hoge.pyxファイルと同じフォルダに
hoge.pyxbldファイルを置いてください。
内容は以下です。
hoge.pyxbld
def make_ext(modname, pyxfilename):
from distutils.extension import Extension
import numpy
ext = Extension(name = modname,
sources=[pyxfilename],
extra_compile_args=['-ffloat-store'],
include_dirs = [numpy.get_include()])
# extra_link_args[['-Lpath', '-lcustomlib'])
return ext
#def make_setup_args():
# return dict(script_args=['--verbose'])
今回は特に、numpyのヘッダを追加しています。
普通のpythonファイルなので、自由に編集してください。
Extensionは通常のsetup.pyで記述するExtensionと同様になります。
詳しくはこちらか
https://github.com/cython/cython/blob/master/pyximport/pyximport.py
こちら
import pyximport
pyximport.install??
おわりに
Cython日本語の情報が少なすぎですね。