こんにちは、みやびのです。
今回は、Cythonのコンパイルコマンドであるcythonizeコマンド及びcythonコマンドについて紹介します。
cythonizeコマンド及びcythonコマンドは簡単にCythonのコンパイルができるコマンドです。
これまでCythonは「setup.py」ファイルが必要でしたが、上記2つのコマンドの登場により不要となりました。
これからはC言語とPythonをセットアップしておけばライブラリをインストールするだけで使えるようになります。
本記事の内容は以下の通り。

・cython及びcythonizeのコマンド導入方法
・cython及びcythonizeを使用したコンパイル方法

Cythonとは?>>Cython(サイソン)とは?Python+C言語で高速化しよう

cython及びcythonizeのコマンド導入方法

コンパイル
Cythonの導入手順と同じです。旧バージョンのcythonライブラリを使っている場合はアップデートしてください。

cython及びcythonizeを使う準備

まずは、前提条件としてPython及びC言語の動作環境のセットアップが必要です。
Pythonの始め方については「Pythonプログラミングの始め方まとめ」をお読みください。
C言語はgccコンパイラが必要です。Macには最初から入っていますが、Windowsはインストールする必要があります。
gccコンパイラは以下のページからダウンロードできます。
http://www.mingw.org/
Windowsでcythonコマンド及びcythonizeコマンドを使うためにはvisual Studioのインストールも必要です。
https://visualstudio.microsoft.com/ja/downloads/

cython及びcythonizeのセットアップ

cython及びcythonizeのコマンドは「cython」ライブラリをインストールするだけで使用できるようになります。

pip install cython

既に旧バージョンのcythonライブラリを使っている場合はライブラリをアップデートしましょう。

pip install --upgrade cython

-Vオプションでバージョンが表示されていればOKです。

>cython -V
Cython version 0.29.14

cython及びcythonizeを使用したコンパイル方法

cythonコマンドとcythonizeコマンドを使うとPythonで書かれた「.pyxファイル」をC言語や実行ファイルにコンパイルすることができます。
オプションの指定方法によって段階的コンパイルしたり、一括で2段階のコンパイルをしたりなど柔軟なコンパイルが可能です。

cythonコマンドの使い方

cythonコマンドはPythonで記述した「.pyx」ファイルをC言語の「.c」ファイルに変換できるコマンドです。
以下のように指定します。

cython helloWorld.pyx

上記コマンドを実行すると以下のファイルが作成できます。
helloWorld.c

cythonizeコマンドの使い方

cythonizeもコンパイルを行うことができるコマンドです。2段階コンパイルもできます。
◆C言語へのコンパイル
オプションを指定しない場合、C言語へのコンパイルだけ行います。

cythonize helloWorld.pyx

◆C言語ファイルから実行ファイルへのコンパイル
C言語のファイルをPythonで実行できる「.soファイル(.pydファイル)」に変換する方法です。
※Windowsの場合は「.pydファイル」、Macの場合は「.soファイル」
-bオプションを指定すると「.c」ファイルを実行ファイルに変換できます。

cythonize -b helloWorld.c

◆2段階コンパイル
-iオプションを指定すると「.cファイル」にコンパイルした後、続けて「.soファイル(.pydファイル)」にコンパイルします。
実行例は以下の通り。

cythonize -i helloWorld.pyx

複数指定も可能です。
以下のようにアスタリスクで指定すると「helloWorld」と名のつく全ての「.pyx」ファイルをコンパイルすることができます。

cythonize -i helloWorld*

◆-aオプション
-aオプションを指定すると以下のHTMLファイルが作成されます。
helloWorld.html
HTMLファイルを開くとPythonコードとC言語の対応関係を見ることができます。
Cython注釈つきHTML
ちなみに元のコードは以下の通り。

def say_hello_to(name):
    print("Hello %s!" % name)

短いコードでも結構複雑なコードになりますね。
以上、cythonコマンド及びcythonizeコマンドの使い方でした。