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

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

もしかして Python?

Cythonで合ってます。

Cython(サイソン)は、Pythonの記述の簡単さとC言語のスピードを併せ持ったハイブリッド型のプログラミング言語です。
Pythonの上位互換となる言語として今後活躍することが期待できそうです。

今回はCythonの概要と導入方法について説明します。

Cythonとは?

What

Cythonは公式ドキュメントにて以下のように説明されています。

Cython is an optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex). It makes writing C extensions for Python as easy as Python itself.

◆Google翻訳
(CythonはPythonプログラミング言語と拡張されたCythonプログラミング言語(Pyrexベース)の両方に最適化された静的コンパイラです。 Python用のC拡張をPython自体と同じくらい簡単に書くことができます。)

引用元:Cythonの公式サイト

※ドキュメントは2019年3月現在日本語のものはないようです。Google翻訳で翻訳すればニュアンスはだいたいわかると思います。

つまり「PythonベースでC言語の関数や機能を使えるよ」ということです。
C言語の部分に関しては、Pythonのコードをコンパイルすれば良い為、C言語の知識がなくても書くことができます。

Cythonを使うメリット

メリット

Cythonの良い点はC言語の速度とPythonの記述の簡単な部分を兼ね備えている点です。

C言語は速度の速い言語ですが、反面プログラムの習得難易度が高く、多くの初心者プログラマーを蹴散らしてきました。

私も蹴散らされた側です。仕事で使うので仕方なく頑張って習得しましたが。

一方、Pythonは超簡単と言えるほど難易度の低い言語です。用途も広くアプリ・Web開発からAIまで幅広い分野で活躍しています。
初心者が始めるならPythonを選んでおけば間違いないでしょう。

反面インタプリタ言語である為処理速度は遅いです。

このように、C言語は「速いけど難しい」、Pythonは「遅いけど簡単」と、それぞれ長所と短所があります。

Cythonは互いの欠点を補い合い、「速くて簡単」を実現したプログラミング言語です。

Cythonの導入方法

Python・Cythonのセットアップ

1.Pythonのセットアップをします

関連記事>>Pythonプログラミングの始め方〜Windows編〜
関連記事>>Python超入門〜MacOSでプログラミングを始める方法〜

Pythonはスマホでもできます。
Python超入門〜Androidで始めるプログラミング〜
Python超入門〜iPhone・iPadで始めるプログラミング〜

2.ライブラリのインストール
公式ドキュメントの手順通りにインストールします。

C言語のセットアップ

以上でCythonのセットアップはOKですが、Cythonを動作させるためにはC言語の動作環境を作っておく必要があります。
具体的にはgccコンパイラのインストールです。Macは最初から入っていますが、Windowsはインストールする必要があります。

以下のページからダウンロードできます。
http://www.mingw.org/

また、cythonコマンド及びcythonizeコマンドを使うためにはvisual Studioのインストールが必要です。
https://visualstudio.microsoft.com/ja/downloads/

Cythonの使い方(コンパイル手順)

Cythonを実行するためには2段階のコンパイルが必要です。
・Pythonコード(.pyxファイル)からC言語(.cファイル)にコンパイル
・C言語から「.soファイル」(windowsでは「.pydファイル」)にコンパイル

「.soファイル(.pydファイル)」はPythonのモジュールとして読み込むことができます。

詳細手順

1.Pythonのコードを記述します

2.コンパイルします
このコマンドだけで2段階のコンパイルを一気にできます。

2020/02/08追記
ライブラリバージョンアップにより「cython」コマンドと「cythonize」コマンドが追加されました。

cythonコマンドではC言語へのコンパイル、cythonizeコマンドは2段階コンパイルができます。

記述例)

コンパイル後は通常のPythonのように呼び出すことができます。

◆実行結果
Hello miyabikno!

公式ドキュメント>>Building Cython code

関連記事>>Cythonのコンパイルが簡単に!cythonizeコマンドを使おう

「Unable to find vcvarsall.bat」というエラーが出た場合

Windowsの場合コンパイル時に「error: Unable to find vcvarsall.bat」というエラーが出る場合があります。

上記エラーはVisual Studioのパスが通っていない場合に起こる問題です。

Visual Studio 2019の設定例は以下の通り。

1.「コントロールパネル>システムとセキュリティ>システム」の順にクリック
2.「システムの詳細設定」をクリック
システム詳細設定をクリック

3.「環境変数」をクリック
環境変数をクリック
4.「path」を選択して編集をクリック
pathを設定

5.新規をクリックして以下のパスを追加して適応

パスの設定2

参考:【GitHub】I get error: Unable to find vcvarsall.bat I'm having trouble?

Cythonの読み方

「サイソン」です。

うちのMacが言っているから間違いない。
Cython変換

・・・とりあえず当ブログではCythonを「サイソン」と読みます。

終わりに

CythonはC言語の速さとPythonの記述の簡単さを併せ持った画期的な言語です。

2019年3月現在日本語のドキュメントはありませんし、まだまだライブラリも整っていない発展途上の言語だと思います。

しかし、速度と簡単さを兼ね備えているのでPythonの上位互換の言語として今後活躍することが期待されます。

関連記事>>Pythonプログラミングの始め方〜Windows編〜
関連記事>>Python超入門〜MacOSでプログラミングを始める方法〜

Python・Cythonはスマホでもできます。
Python超入門〜Androidで始めるプログラミング〜
Python超入門〜iPhone・iPadで始めるプログラミング〜

◆今後活躍しそうなプログラミング言語
Juliaの導入と実行方法〜計算と速度に優れたプログラミング言語を使おう〜

関連記事>>Mac・Windowsでできるプログラミングの始め方まとめ

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

  • この記事を書いた人
miyabikno

miyabikno

住んでいるところ:神奈川県。 SIer中小企業(C,VBA):8年(うち5年QA)。Web系ベンチャー(PHP,Javascript,Python):2年。フリーランス:2年。現在はブログをメインに活動しています。

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

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