Size: 1159
Comment:
|
Size: 1472
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 5: | Line 5: |
[[https://se.miyabikno-jobs.com/cython-compile-cythonize/|簡単なコンパイル]] | Cythonについて調べると、setup.py なるファイルを作れという記事が多くヒットするが、現代ではこれは必要なくなった。([[https://se.miyabikno-jobs.com/cython-compile-cythonize/|ここ]]を参照) |
Line 11: | Line 11: |
home directoryに ''.cython.sh'' という名前で以下を書き込んだシェルスクリプトを作る。 | home directoryに ''.cython.sh'' という名前で以下を書き込んだシェルスクリプトを作る。 |
Line 14: | Line 14: |
set -e trap 'echo compile error' ERR |
|
Line 15: | Line 17: |
cythonize -a -i $code > .cython_log.txt | cythonize -i $code > .cython_log.txt rm ${code%.pyx}.c |
Line 30: | Line 33: |
注意点として、コードのバグ等でコンパイルが失敗した場合にも強行実行されてしまうので、Ctrl-Cで手動killしよう。 | 2, 3行目は、コンパイルに失敗した時にスクリプトが止まるようにするおまじない。 6行目は .c ファイルを残さないようにしている。 9行目の末尾の "${@:2}" は、引数をpythonに渡すおまじない。 |
高速化の小技
Cython
Cythonについて調べると、setup.py なるファイルを作れという記事が多くヒットするが、現代ではこれは必要なくなった。(ここを参照)
Cythonのコンパイル -> 実行を一発でできるようにする
Cythonを使って高速化したはいいけど、毎回コンパイルするのは面倒だ。複数のコードになってしまうのは嫌だ。という場合の小技。
home directoryに .cython.sh という名前で以下を書き込んだシェルスクリプトを作る。
また、 ~/.bashrc に次の一行を書き足す。
1 alias cythonsh='sh ~/.cython.sh'
これで .bashrc を有効にすれば、ターミナルで
> cythonsh (cythonコード).pyx 引数
と打つだけでコンパイルから実行まで行われる。
2, 3行目は、コンパイルに失敗した時にスクリプトが止まるようにするおまじない。
6行目は .c ファイルを残さないようにしている。
9行目の末尾の "${@:2}" は、引数をpythonに渡すおまじない。