Select Language

AI Technology Community

1.4、Pythonコンパイラ(インタプリタ)まとめ

言語は一種の規範であり、あるいはただの紙に過ぎません。コンパイラやインタープリターは言語の具体的な実装であり、異なるインタープリターは独自のスタイルを追加することがあります。ですから、同じコードであっても、異なるインタープリターを使用するとその挙動が異なる場合があります。

Python言語はオープンな言語であり、誰でも、どんな会社や組織でも独自の実装やインタープリターを作成することができます。現在最も正統なPythonのリリース版は、python.orgが提供するC言語で実装されたPythonインタープリターです。このリリース版はPythonの公式サイト(https://www.python.org/)から無料でダウンロードできます。

python.org以外にも、多くの組織や会社が他のPythonの実装版を提供しています。このセクションでは、いくつかの一般的な実装版について紹介します。

1. CPython

CPythonは先ほど述べたpython.orgが提供するPythonコンパイラであり、Windows、macOS、Linuxなどの他のシステムでの実行をサポートしています。このチュートリアルでは、皆さんにCPythonのインストールをおすすめします。

CPythonと呼ばれるのは、C言語で実装されているからです。

https://www.python.org/downloads/では、Python 2やPython 3を含む、公開されているすべてのPythonバージョンを見ることができます。ここから自分のバージョンを選択し、リンクをクリックすると、関連するバージョンのダウンロードページに移動します。図1のようになります。

CPythonのバージョンを選択
図1:CPythonのバージョンを選択


開いたリンクでは、異なるプラットフォームのインストールパッケージを選択してダウンロードすることも、ソースコードをダウンロードすることもできます。Windowsユーザーの場合は、Windows x86 - 64 executable installerのインストールパッケージのダウンロードをおすすめします。図2のようになります。ダウンロード後、直接ダブルクリックするだけでインストールが完了します。

CPythonのインストールパッケージを選択
図2:CPythonのインストールパッケージを選択

2. Irony Python

IronPythonは.NETとMono上でのPython言語の実装であり、Jim Hugunin(Jythonの創始者でもある)によって作成されました。最初のリリース版は2006年9月5日に公開されました。

IronPythonの最大の特徴は、Windowsとシームレスに連携でき、Windowsの実行可能ファイルに直接コンパイルすることができることです。

https://ironpython.net/では、IronPythonプロジェクトの状況を見ることができます。現在の最新リリース版は2.7.9であり、Python 3関連のバージョンはまだ見られていません。このバージョンはhttps://github.com/IronLanguages/ironpython2/releases/tag/ipy - 2.7.9からダウンロードできます。msiインストールファイルのダウンロードをおすすめします。図3のようになります。

IronPythonのインストールパッケージをダウンロード
図3:IronPythonのインストールパッケージをダウンロード

IronPythonのインストールパッケージは約5MBで、CPythonのインストールパッケージよりもはるかに小さいです。

ダウンロードが完了したら、このmsiファイルをダブルクリックするとインストールができます。図4のようになります。

IronPythonをインストール
図4:IronPythonをインストール


インストールが完了すると、インストールディレクトリにいくつかの実行可能ファイルが表示されます。図5のようになります。

IronPythonのインストールディレクトリ内のファイル
図5:IronPythonのインストールディレクトリ内のファイル


このうち、ipy32.exeは32ビットのインタープリターです。このプログラムを実行すると、図6のようなウィンドウが表示されます。

ipy32.exeの実行状況
図6:ipy32.exeの実行状況


ipy.exeは64ビットのインタープリターです。このプログラムを実行すると、図7のようなウィンドウが表示されます。

ipy.exeの実行状況
図7:ipy.exeの実行状況


ipyc.exeはコンパイラであり、Pythonスクリプトを実行可能ファイルにコンパイルすることができます。これはIronPythonの特徴的な機能の一つです。

CPythonにもPythonスクリプトを実行可能ファイルにコンパイルするツールがありますが、通常コンパイル後の結果ファイルは非常に大きくなります。一方、ipyc.exeでコンパイルされたものはdotnet上のバイトコードなので、結果ファイルははるかに小さくなります。

図8はipyc.exeを使用したコンパイルの過程を示しています。

ipycコンパイラの使用方法
図8:ipycコンパイラの使用方法


コンパイル結果のファイルhello.exeは約4KBであることがわかります。他のツールを使用すると、出力ファイルは少なくとも2MB以上になり、両者は数百倍もの差があります。

インストールディレクトリのscriptsディレクトリには、pipやeasy_installなど、Pythonソフトウェアパッケージをインストールするいくつかのツールがあります。図9のようになります。これら2つのプログラムは、Pythonソフトウェアパッケージをインストールする一般的なツールです。pipは現在、比較的人気のあるPythonパッケージのインストール方法であり、このチュートリアルでもpipを使用してPythonパッケージをインストールすることをおすすめします。

s<em></em>criptsディレクトリ内の内容
図9:scriptsディレクトリ内の内容


CPythonとは異なり、pipはPythonスクリプトではなくアプリケーションであり、実行可能ファイルです。テキストエディタで開くと、バイナリの乱符号が表示されます。

IronPythonはこのチュートリアルの重点ではないので、ここでは簡単な例を示します。この例では、ウィンドウを作成し、そのウィンドウを表示します。コードは以下の通りです。

import clr                             # dotnetライブラリをインポートするためclr.AddReference('System.Drawing')     # System.Drawingというdllをインポートする# System.Windows.Formsというdllをインポートするclr.AddReference('System.Windows.Forms')from System.Drawing import Icon        # アイコンをインポートするfrom System.Windows.Forms import Form  # ウィンドウをインポートするicon = Icon('./test.ico')              # アイコンを作成するform = Form()                          # ウィンドウを作成するform.Icon = icon                       # ウィンドウが使用するアイコンを指定するform.ShowDialog()                      # ウィンドウを表示する


これが使用する方法はC#に似ていることがわかります。まずいくつかのdllをインポートし、次にこれらのユーザーインターフェイス要素を作成し、最後に表示するだけです。このコードを実行すると、図10のようなウィンドウが表示されます。

IronPythonでのコード実行結果
図10:IronPythonでのコード実行結果

3. Jython

JythonはJavaで実装されたPythonインタープリターであり、その特徴も明確です。サードパーティのjarパッケージをシームレスに使用することができ、これによりJavaコミュニティのすべてのリソースをPythonで直接使用することができます。

Jythonの使い方はCPythonと基本的に同じですが、sysの情報が異なります。たとえば、os.nameはjavaであり、CPythonの場合はntです。図11はJythonインタープリターの実行状況を示しています。

Jythonインタープリターの実行状況

post
Python入門
2021-12-10 23:44:02join communtity
  • 11

    item of content
Python入門は全部で11章あります。
このチュートリアルを開いていただき、ありがとうございます。第1章として、皆さんを楽しくPythonの初歩へと導きます。
この章では、Pythonの歴史から始め、Pythonのバージョン、Python言語の特徴、そしてPython開発に必要な基礎知識や基本文法などを紹介します。
これらの内容をマスターすることで、後の章での学習に良い土台を築くことができます。