5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Cythonで、pyximportでも、コンパイルオプションを付与したい

Posted at

はじめに

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日本語の情報が少なすぎですね。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?