本格的にlambdaの学習に取り掛かっています。
lambdaは開発言語が複数ありますが、私に馴染みがあるのは「node.js」と「python」です。
今回は、勉強もかねてpythonに挑戦してみようと思います。
ただ、私の開発環境は数年前にpythonを触ったきりそのまま放置していたので、開発するにはしのびない状態でした。
そこで、開発環境を再構築し直しました。
この記事で得られること
イントロダクション
作業の流れ
開発環境
キーワード
- pip
- pyenv
- pyenv-vertualenv
pyenvで安定版のPythonをインストール
pythonの安定板は2017年12月現在では「3.6.4」だったのですが、ローカルのバージョンは「3.5.1」だったので安定板をインストールします。
pyenvでインストールできるpythonのバージョンが低い?
pyenvでインストール可能なバージョンを確認して見ても低いバージョンしかインストールできませんでした。
$ pyenv install --list
... 省略 ...
3.5.1
3.6.0.dev
anaconda-1.4.0
... 省略 ...
そのため、pyenv自体のアップデートを行います。 pyenvはgitで管理されているのでcloneすれば良いのですが、今回はpyenv-updateを使用します。 これで、pyenvのコマンドに含めてしまうこともできます。
$ git clone git://github.com/yyuu/pyenv-update.git ~/.pyenv/plugins/pyenv-update $ pyenv update
最新版のzlibライブラリが足りなくてインストールできない?
pyenvをアップデートしたことで、pyenv install --list
に安定版が表示されました。
次にインストールをしてみたのですがインストールできません。
$ pyenv install 3.6.4 ... 処理中 ... zipimport.ZipImportError: can\'t decompress data; zlib not available make: *** [install] Error 1
どうやら、zlibが実行できる環境では無いようです。
zlib自体は別途インストールする方法もありますが、macで開発を行う場合はxcodeのCommand line toolsをインストールする方法が主流のようです。
「Command line tools」は開発に必要な最小限のCLIのライブラリをインストールしてくれます。
Command line toolsをインストール
ドキュメントには下記と記載されています。
Install the Command Line Tools package via the Terminal application You can install the Command Line Tools package by running the xcode-select --install command.
CLIの場合はxcode-select --install
コマンドでインストールできると書いているのでコマンドで実行します。
$ xcode-select --install
実行すると、ポップアップでインストール許可を聞かれるので続行します。
再度新しいバージョンをインストール
しばらくするとインストールが完了しますので、終わったら再度最新版のpythonをインストールします。
$ pyenv install 3.6.4 Installed Python-3.6.4 to /Users/(ユーザー)/.pyenv/versions/3.6.4 ## インストールが完了したら、実際に追加されたか確認。 $ pyenv versions system 2.7.11 * 3.5.1 (set by /Users/<username>/.pyenv/version) 3.6.4
pyenv-vertualenvでプロジェクト用のpyenvのバージョンを作成
この時点で、pythonのバージョンをディレクトリ単位で変える事はできます。
しかし、バージョン毎に切り替えを行うので、pip
コマンドでインストールしたライブラリは共有されてしまいます。
もし、2つのプロジェクトがあって、pythonのバージョンが同じだが、ライブラリがそれぞれ違う物を使用している場合はどうでしょうか?
仮にライブラリ間で干渉してしまうものがあった場合、構築の手間になってしまいます。
そこで、pyenv-virtualenvを使ってバージョンを更に、個別のプロジェクトに分けられるようにします。
ちなみに、pyenv-virtualenvはpyenvのプラグインであって、virtualenvとは別物です。
インストール
macの場合は次の方法でインストールできます。
windowsの場合は、おそらくgitでcloneする方法になるかと思います。
$ brew install pyenv-virtualenv $ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
バージョンを複製
## 先ほどインストールした3.6.4を複製して、「hogeproject」という名前にします。 $ pyenv virtualenv 3.6.4 hogeproject ## 念のため確認します。 $ pyenv versions system 2.7.11 * 3.5.1 (set by /Users/<username>/.pyenv/version) 3.6.4 3.6.4/envs/hogeproject hogeproject (set by PYENV_VERSION environment variable)
プロジェクトディレクトリに適用
これでバージョンとプロジェクト毎に変えられるpythonの環境が作れるようになりました。
最後に、設定したいプロジェクトのディレクトリに作成したバージョンを指定します。
$ cd <project directory> $ pyenv local hogeproject
これで完了です。
実行すると、pyenv local
でバージョンを指定した場合、「.python-version」と言うファイルが自動生成されます。
個別の環境用のファイルは除外しておいた方がよいので、gitのバージョン管理から除外しておいた方が良いです。