Let's Python!
ということで、早速Pythonを使ってみましょう、という前に、Pythonのバージョンの状況について簡単に説明しておきます。
現在、Pythonには2.x系列と3.x系列の2つがありますが、まだまだ2.x系列がメジャーです。3.xは2.xと後方互換性がないので、マイナーバージョンアップに比べると移行が進んでいるとは正直言えません。ライブラリやフレームワークも、3.xのサポート状況は充実しているとは言えない状況です。現状でどちらを選ぶかは、非常に悩ましい問題です。とはいえ、どちらか選択しないと始められないので、2.x系列を対象として進めます。ただし、連載の途中で3.x系列が明らかにメインストリームになってきたら、対応します。
さて、PythonにはソースはもちろんWindows版やMac版も公式配布されています。Pythonの機能自体はLinuxでもWIndowsでもMacでも差はないのですが、使えるライブラリに差があるのでそこは注意です。たとえば、win32comというExcelなどを操作するライブラリはWindowsにしかなかったりします。LinuxでもpyExceleratorというライブラリがありますが、win32comとは別物です。この連載では、いわゆるLAMP環境にターゲットして、Linuxを前提として進めていきます。
ダウンロードページからLinux用のインストーラーをダウンロードしてインストールしましょう。Windows版やMac版はインストーラーがあるので楽勝ですが、Linux版はソースからインストールするのでconfigureしてmakeする必要があります。configureのオプションは好みですが、--enable-sharedは付けておいたほうがよいでしょう。--enable-sharedを付けておくと、shared library(dynamic link library)を作成してくれます。Apacheのmod_wsgiで使うことなどを考えて、--enable-sharedは付けておきましょう。
Pythonを無事インストールできたら、次にsetuptoolsを入れます。setuptoolsはPythonのパッケージ管理用のツールで、ちょっと違いますが、PerlのCPANのようなものです。setuptoolsをインストールするとeasy_installというパッケージを手軽にインストールするためのコマンドもインストールされます。この連載でもeasy_installを使いますのでsetuptoolsは入れておいてください。ちなみに、pipというより新しいパッケージ管理ツールもあるので、興味がある人は調べてみてください。
Python以外に、データベースとしてMySQLを使いますのでインストールしておいてください。MySQLのインストールの詳細はもうそこら中に情報があると思うので省きます。
ちなみにこのパッケージで提供されるモジュールの名前はMySQLdbです。CPANの場合、名前空間とファイル名とパッケージ名がある一定のルールの元で関係付いていますが、Pythonの場合ここは今いちです(maybe misspelled?とよくいわれます)。PythonにはWindows版やMac版もあるのですが、MySQLdbは作者がWindowsを知らない人なので、最新版はLinux版しかありません。Python本体はWindowsでも学習できるのですが、本格的に何かしようとするなら、初めからLinuxで勉強した方が結局は早道です。VMwareなどでも構わないので、Linux環境を用意しましょう。
さて、PythonにはPython shellとでもいうような対話モードが用意されていて、実に使いやすいです。OSのシェル(Windowsであればコマンドプロンプト)からpythonと打つだけですので、MySQLdbが使用可能になっているか、Python shellで確かめましょう。
$ python
(略)
>>> import MySQLdb
>>> con = MySQLdb.connect(user='ユーザ',passwd='パスワード',db=' データベース')
この操作でエラーが出なければ、MySQLdbは正しくインストールされ、MySQLにアクセスできる状態です。何らか問題があれば例外が発生します。
以上で最低限の準備が整いました。この連載ではターゲットをPythonの初歩ではなく、いわば実践において進めようと思います。必要に応じて解説しますが、Pythonのシンタックスの基礎、標準モジュール、コンテナというか変数の型などは理解しているという前提です。「FacebookがPythonでできている」ことをメリットとして紹介しましたので、まずはFacebookのようなものを作ってみようと思います。
著者:山崎徳之
ゼロスタートコミュニケーションズ代表取締役。
青山学院大学卒業後、アスキー、So-netなどでネットワーク、サーバエンジニアを経験。オン・ザ・エッヂ(現ライブドア)のデータセンターである「データホテル」を構築、運営。2003年にベイエリアにおいてVoIPベンチャーであるRedSIP Inc.を創業。2006年6月に(株)ゼロスタートコミュニケーションズを設立、代表取締役就任(現任)。