とっしぃのTech Memo

PHPとかサーバとか他色々言語のメモ的な。あとはたまにガジェットとか。

Pythonデビュー

とっしーです。

仕事では基本PHPで、バッチとか簡単なスクリプトはbash使ってるんですが、
なんかその間みたいな言語を覚えたいなーという気持ちがずっとありました。

候補としては、まぁ予想は付くと思いますがRubyPythonですわね。

それぞれのユーザー様からしたらとても失礼かもしれないんですが、
Perlはなんか今から覚えるようなもんでもなさそうだし、
CとかC++まで行くとさすがにそこまでじゃないしーって感じなんですよね。
JavaJVM起動とか入るんでちょいと除外。Web用途、アプリ用途で既に使ってましたし。


そしてRubyはRoR、というかSinatraですけど、のためにちょこちょこ触ってたりします。

なのでスクリプト用途に使えそうな言語、ということでPythonを始めてみようかと思ったので
環境構築でもメモメモ。

サーバ

とりあえずいつも使ってるさくらのVPSにそのまま環境を作ってみます。

インストール

もしかして昔なんか入れたっけなー、つかCentOSって最初っから入ってたんだっけなー
ということでコマンド打ってみます。

$ python --version
Python 2.7.4

うお、なんか入ってる!

でもたしか最新は3系とかじゃなかったっけ・・・?

調べてみるとやっぱり最新の安定版は3.3.3とのことなので、上記バージョンとは別にインストールしてみます。

$ wget http://www.python.org/ftp/python/3.3.3/Python-3.3.3.tgz
$ tar -xvzf Python-3.3.3.tgz
$ ./configure --prefix=/usr/local
$ sudo make

ここでなんか怒られました。

Python build finished, but the necessary bits to build these modules were not found:
_lzma                                                 
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

look in setup.py in detect_modules()とか言われたので見てみます。

1370行目辺りですかね。

         # LZMA compression support.
         if self.compiler.find_library_file(lib_dirs, 'lzma'):
             exts.append( Extension('_lzma', ['_lzmamodule.c'],
                                    libraries = ['lzma']) )
         else:
             missing.append('_lzma')

lzmaってパッケージがないのかね。

sudo yum install lzma 
Loaded plugins: fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
 * epel: ftp.iij.ad.jp
 * remi: remi.kazukioishi.net
 * rpmforge: ftp.kddilabs.jp
183 packages excluded due to repository priority protections
Setting up Install Process
Package lzma-4.32.7-1.el6.rf.x86_64 is obsoleted by xz-lzma-compat-4.999.9-0.3.beta.20091007git.el6.x86_64 which is already installed
Nothing to do

あるじゃん( ^ω^)

調べたらlzmaってファイル圧縮とかのなんかなのね。
まぁなくてもどうにかなんじゃね(´・ω・`)

ていっ

$ sudo make altinstall

なにやらさっきのconfigureの--prefixオプションと、このaltinstallで
既にあるバージョンと競合とかせずにインストールできるぽいですね。

特にエラーっぽいメッセージはなし、と。

というわけで確認。

$ python --version
Python 2.7.4

うんこれはこれで正しい。

$ python3.3 --version
Python 3.3.3

おっけーい。

そしてこれを簡単に切り替えられる仕組みとしてvirtualenvってのがあるらしいんですが
今日のところは時間的にいっぱいいっぱいなのでまた後日。

もうちょい早くにやり始めれば良かった(´・ω・`)


参考サイト:
CentOS6.4に複数バージョンのPythonのインストール | WinRoad徒然草