Size: 128
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/|ここ]]を参照) === Cythonのコンパイル -> 実行を一発でできるようにする === Cythonを使って高速化したはいいけど、毎回コンパイルするのは面倒だ。複数のコードになってしまうのは嫌だ。という場合の小技。 home directoryに ''.cython.sh'' という名前で以下を書き込んだシェルスクリプトを作る。 {{{#!highlight sh #!/usr/bin/bash set -e trap 'echo compile error' ERR code=$1 cythonize -i $code > .cython_log.txt rm ${code%.pyx}.c echo 'import '${code%.pyx} > .a.py echo ${code%.pyx}'.main()' >> .a.py python .a.py "${@:2}" }}} また、 ''~/.bashrc'' に次の一行を書き足す。 {{{#!highlight bash alias cythonsh='sh ~/.cython.sh' }}} これで ''.bashrc'' を有効にすれば、ターミナルで {{{ > cythonsh (cythonコード).pyx 引数 }}} と打つだけでコンパイルから実行まで行われる。 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に渡すおまじない。