python 環境構築

この記事は1年以上前に書かれたものです。 情報が古い可能性があります。

寝苦しい夜が続いています.
ふと思い立ったので python の勉強でもしようかと...

全く触ってなかったので環境構築から始めて,何かサンプル作るところまでやりたい.

参考にするのはこれ!
https://www.amazon.co.jp/dp/4839960240/ref=sr_1_4?ie=UTF8&qid=1500927925&sr=8-4&keywords=python

だいぶ前に買ってそのまま放ってたやつ.
ただし環境構築は本をがん無視して進めます.

python は 2 系と 3 系で結構変わってるらしいですね.普段使ってる mac は 2.7 なのですが,どうせなら今後増えるであろう 3 系でやります.
ということで毎度のことながら Docker でささっとコンテナ構築.

環境

CentOS Linux release 7.3.1611 (Core) on docker on mac
python 3.6.1

なんか bash on ubuntu on windows10 みたいになってますね.

インストール

今回は 2 系の依存関係とか共存とか無視して新しく作るので,簡単なはず...
最低限 python と pip 入れます.

1. リポジトリの追加

最新版のインストールのため,リポジトリを追加します.

yum install -y https://centos7.iuscommunity.org/ius-release.rpm

2. python3 系の検索

追加したリポジトリから python3.x を探します.

yum search python3

ずらーっとリストが表示されます.python36 が最新らしいので,これを使います.

3. python と周辺パッケージのインストール

python の本体と,pip,ライブラリなんかをまとめてインストールしました.

yum install -y python36u python36u-libs python36u-devel python36u-pip

4. 動作確認

# python -V
Python 2.7.5

あれ? なんで 2.7 おんねん(笑)
/bin には 3.6 もちゃんとインストールされてる.
docker のコンテナって何も入ってないと思ってたけど最初からおったのかも.

混ざるとややこしいので削除しようとしたが,調べると危険そう.
ひどい目にあったとかいう記事がいっぱい.英語サイトもやめとけっていってる.

でも python コマンドはどうしても 3 にしたかったので,シンボリックリンクを貼り直す.

5. シンボリックリンク修正

ls で /bin/python を見てみるとシンボリックリンクになってる.

lrwxrwxrwx 1 root root       7 Jul  5 17:15 python -> python2
lrwxrwxrwx 1 root root       9 Jul  5 17:15 python2 -> python2.7
-rwxr-xr-x 1 root root    7136 Nov  6  2016 python2.7
-rwxr-xr-x 2 root root   11312 Apr  7 14:35 python3.6

これを python3.6 に付け替えれば行けそう.

rm python
ln -s python3.6 python

変わったことの確認.

lrwxrwxrwx 1 root root       9 Jul 24 20:58 python -> python3.6
lrwxrwxrwx 1 root root       9 Jul  5 17:15 python2 -> python2.7
-rwxr-xr-x 1 root root    7136 Nov  6  2016 python2.7
-rwxr-xr-x 2 root root   11312 Apr  7 14:35 python3.6
# python -V
Python 3.6.1

やっと環境構築終わったので,サンプルを作る.

6. 適当なサンプル作成

python は対話モード(REPL)というのがあるそうで,hello world! だと 1 行で終わってしまう!
python を実行すると >>> と出て,簡単な計算とか print 文が使える.
ちなみに python2 では print はカッコがないのですぐにわかる.

# python
Python 3.6.1 (default, Apr  7 2017, 09:32:32)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print ("Hello Python World!")
Hello Python World!

対話モードは exit() か control + d で終了できる.

さすがにもうちょっとマシなのが欲しいので,身長と体重を入力すると BMI を出力するスクリプトを作ってみる.

ところがここで問題発生.
vim を入れようとしたところ,

yum ができない!!!

yum install vim
  File "/usr/bin/yum", line 30
    except KeyboardInterrupt, e:
                            ^
SyntaxError: invalid syntax

って表示される.
原因は python2.6 のシンボリックリンクをいじったこと.
yum って python で動いてるなんて初めて知った.

/bin/yum の先頭行を #!/bin/python2 に書き換えることで解決かと思ったが,そのあとの Downloading packages: でもエラーになったので,諦めてリンクを元に戻した.

python3 ってやつを新しく作ることで環境を分けることにしましょう.

#!/bin/python3

# calculate BMI
weight = float(input("weight(kg)?"))
height = float(input("height(cm)?"))

# CM to M
height = height / 100
bmi = weight / (height * height)

print("BMI : ", bmi)

実行
# python3 bmi.py
weight(kg)?67
height(cm)?167
BMI :  24.023808670084982

一旦ここで終了.
せっかくライブラリが充実してると噂なので,この本さーっと終わらせてから機械学習の sckit-learn とか TransFlow とか API とかやっていきたいです.
勉強がんばる(´・ω・`)

コメント

タイトルとURLをコピーしました