Pythonプログラミングの勉強法

Cythonのコンパイルが簡単に!cythonizeコマンドを使おう

こんにちは、みやびのです。
今回は、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」ライブラリをインストールするだけで使用できるようになります。

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

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

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

cythonコマンドとcythonizeコマンドを使うとPythonで書かれた「.pyxファイル」をC言語や実行ファイルにコンパイルすることができます。

オプションの指定方法によって段階的コンパイルしたり、一括で2段階のコンパイルをしたりなど柔軟なコンパイルが可能です。

cythonコマンドの使い方

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

以下のように指定します。

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

cythonizeコマンドの使い方

cythonizeもコンパイルを行うことができるコマンドです。2段階コンパイルもできます。

◆C言語へのコンパイル
オプションを指定しない場合、C言語へのコンパイルだけ行います。

◆C言語ファイルから実行ファイルへのコンパイル
C言語のファイルをPythonで実行できる「.soファイル(.pydファイル)」に変換する方法です。

※Windowsの場合は「.pydファイル」、Macの場合は「.soファイル」

-bオプションを指定すると「.c」ファイルを実行ファイルに変換できます。

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

実行例は以下の通り。

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

◆-aオプション
-aオプションを指定すると以下のHTMLファイルが作成されます。
helloWorld.html

HTMLファイルを開くとPythonコードとC言語の対応関係を見ることができます。
Cython注釈つきHTML

ちなみに元のコードは以下の通り。

短いコードでも結構複雑なコードになりますね。

以上、cythonコマンド及びcythonizeコマンドの使い方でした。

こちらの記事も読まれています

  • この記事を書いた人

みやびの

住んでいるところ:神奈川県。 プログラミング歴は13年ほど。 ※プログラミングに関する無料相談・質問への回答は行っていません。

-Pythonプログラミングの勉強法

Copyright© みやびのどっとぴーわい , 2020 All Rights Reserved Powered by AFFINGER5.