RubyエンジニアがPythonを始めてみる① インストール編(Pyenv, Virtualenv) for Mac
概要
諸事情あってPythonを使う必要が出てきたので、インストールメモを書いておく
(GoogleAnalyticsのライブラリがJava, PHP, Pythonしかない…)
個人的に新しい言語を導入する時に最初に調べるものは4つある
- 復数バージョンの一括管理方法(Rubyで言うrvm, rbenv, Nodeのnvm)
- 外部パッケージ等のインストール方法
- 外部パッケージをプロジェクトで切り分ける方法(Rubyで言うGemfile(bundler), Nodeのpackage.json)
- デバッガー(Rubyで言うpry, Nodeのnode debug)
今回は、上3つについて語ります。(デバッガーについては次以降)
とりあえず上から今回調べたものを書いていくと、
- Pyenv (rbenvとかと同じような感じで使える)
- pip (gemみたいな感じ)
- Virtualenv (bundlerなどとは違うが、似た概念を提供している)
今回はこれらについてのインストール方法と簡単な使い方を書いていきます
復数バージョン同時管理! Pyenvのインストール
Homebrewが使えるみたいなのでかなり簡単。
Homebrewのインストールはこちら
$ brew update $ brew install pyenv $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile # zshを使っている人は~/.zshrc
Pyenvの使い方
利用できるバージョンリストを取得
$ pyenv install -l
数字で表示されているものの最新でだいたい良い気がするので、それをインストール(2016/03/04時点では3.5.1)
$ pyenv install 3.5.1
macだとzlib関連のエラーが発生した
zipimport.ZipImportError: can't decompress data; zlib not available
その場合はxcode-select --install
をすればインストールできるようになる
インストールしたバージョン 3.5.1
を常に使うようにglobalに設定
$ pyenv rehash $ pyenv global 3.5.1
現在利用しているバージョンを確認
$ pyenv versions # 星(*)マークが付いているものを利用している system (set by /Users/~~~/.pyenv/version) * 3.5.1 $ python --version # pythonで直接確認することもできるよ Python 3.5.1 # こんな感じに出力されたらOK
これで別のバージョンをインストールしたいときはすぐに出来そう
外部パッケージのインストール。
とりあえずpipで
Pythonのパッケージマネージャ(?)はpipとかeasy_installとかあり、統一されていないようだ(anacondaとかもあるみたい)
ただ、だいたいpipっぽいのでpipで!!
という雰囲気を感じたのでとりあえず他のは無視して良いんじゃないだろうか
使い方は超シンプルだ。
$ pip install <package name>
これだけ! gemっぽいよね!
インストールされているパッケージのリスト表示
$ pip list
パッケージのアンインストール
$ pip uninstall <package name>
外部パッケージをプロジェクトで切り分ける方法
Virtualenvという概念が面白い
pipを使うと、入れたライブラリがシステム全体に反映されてしまって各プロジェクトごとに必要なライブラリがわからないという問題が出る
Virtualenvというのは、Rubyのbundlerに近く、プロジェクトごとにライブラリを管理できる
少し違うのが、名前の通り仮想的なpythonの環境を作っているというところだ
仮想python環境をプロジェクトごとに使って、そちらに変更することでbundlerと同じようなことを実現しているみたいだ
パッケージの管理
Gemfileみたいなものはないのだが、下記コマンドで同様のもの(どちらかというとGemfile.lockかな)を作成できる
pip freeze > requirements.txt
逆にインストールするときは
pip install -r requirements.txt
でできる
インストール方法
pip install virtualenv
使い方
# プロジェクトフォルダをsample_virtualenvとすると、 $ virtualenv sample_virtualenv Using base prefix '/Users/zenn/.pyenv/versions/3.5.1' New python executable in /Users/zenn/samplecodes/python/sample_virtualenv/bin/python3.5 Also creating executable in /Users/zenn/samplecodes/python/sample_virtualenv/bin/python Installing setuptools, pip, wheel...done.
色々フォルダができる
$ ls sample_virtualenv bin include lib pip-selfcheck.json
Virtualenvを活性化
$ source ./sample_virtualenv/bin/activate
これでこのプロジェクトの仮想python環境に移動したことになるらしい。(zshだと今の仮想python環境を教えてくれたりするので便利)
pip listとかするとちゃんと変わっていることがわかるはず(新しい環境だと3つくらいのパッケージしかない)。
Virtualenvを非活性化
$ deactivate
では、楽しいPythonライフを送りましょう!