295
321

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pythonの環境構築 on Mac ( pyenv, virtualenv, anaconda, ipython notebook )

Last updated at Posted at 2016-08-13

はじめに

pythonの環境構築を今後のためにまとめておきます。

  • バージョン管理をします ( pyenv )
  • 環境管理をします ( virtualenv )
  • anacondaも使います ( anaconda: 便利なpythonパッケージ )
  • iPython notebookにも触れます ( 知らないと損な開発 must item )

基本設定

pyenv virtualenv のインストール

まず、homebrewで pyenvとvirtualenvをインストールします。
( homebrewはインストール済みの前提です。 )

pyenvでバージョンの管理が出来ます。
virtualenvで開発環境など環境ごとの管理が出来ます。

$ brew install pyenv
$ brew install pyenv-virtualenv

パスを通す

次に、パスを通します。 .bash_profile に下記を記述します。そうするとターミナルの起動時に自動的に読み込みんでくれるようになります。(ログインshellがbashではない方は適宜対応して下さい)

~/.bash_profile
PYENV_ROOT=~/.pyenv
export PATH=$PATH:$PYENV_ROOT/bin
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

パスを通すことで以下のようにコマンドを実行させることが出来るようになります。

$ pyenv

.bash_profileを一旦読み込みます。

$ source ~/.bash_profile

anacondaをpyenvでインストール

anacondaのインストール

さて、pythonをインストールしていきます。

$ pyenv install --list

こうするとインストール可能なpythonのバージョン一覧が見れます。この中から好きなバージョンのpythonをインストールすることが出来ます。
ここではanacondaをインストールしていきます。anacondaとはPython本体とよく使うパッケージをまとめてセットアップして用意してくれているもので、とても便利なものです。python単体をインストールするよりもこちらのほうが楽です。

$ pyenv install anaconda3-2.4.1

このコマンドは完了までに時間がかかります。これでPython3に各種パッケージがインストールされたanacondaがインストールされます。

使用バージョンを切り替える

現在使用されているバージョンを確認します。

$ pyenv versions

以下のように anaconda3-2.4.1 があればオーケーです。 *がついているのが現在しようしているバージョンなので anaconda3-2.4.1 に切り替えましょう。

* system
anaconda3-2.4.1 (set by /Users/your_name/.pyenv/version)
$ pyenv global anaconda3-2.4.1
$ pyenv versions
system
* anaconda3-2.4.1 (set by /Users/your_name/.pyenv/version)

他のバージョンのインストール

さて、これでpythonを使えるようになったわけですが、 python2のanacondaもインストールしておきましょう。

$ pyenv install anaconda-2.4.0
system
anaconda-2.4.0
* anaconda3-2.4.1 (set by /Users/your_name/.pyenv/version)

あとは以下のようにいつでも切り替えられます。python2系、python3系は使い分ける必要がある場面もあるので両方用意しておくのが良いかと思います。簡単にバージョンを切り替えられる pyenvの強みが少し感じられたのではないでしょうか。

$ pyenv global anaconda-2.4.0

※ 特になければ、新しいpython3系を使うのが良いと思います。

ipython notebook を使ってみる

anacondaをインストールしたことで、好きなバージョンのpythonが使えるようになりました。
pythonで開発するなら知らないといけない ipython notebookを軽く触れておきましょう。

anacondaをインストールすると、既に環境は整っています。

$ ipython notebook

と打つとブラウザが立ち上がります。

ブラウザの右上の「New」 > 「Python3」から新しいファイルを作成出来ます。

スクリーンショット_2016-08-13_16_56_31.png

ファイルが開くとpythonのコードを書くことが出来、「Shift + enter」 でセル内のコードを実行出来ます。
以下のような感じでグラフの描画もラクラク出来ます。

スクリーンショット 2016-08-13 17.02.57.png

開発していく中でとても強力なツールなので使えるようにしておくとよいでしょう。

以前、データ分析に関する投稿をしましたが、これも全てipython notebook上で行っています。
Pythonでデータ分析実践演習 ~2016 New Coder Survey 編~

virtual-envによる環境管理

チーム開発する上でメンバーと開発環境を統一する必要があります。
そんなときは環境ごとにセットアップするのがよいと思います。

virtual-envの作成

まず、共通のバージョンのpythonをインストールします。(ここでは3.5系)

$ pyenv install 3.5.1
$ pyenv virtualenv 3.5.1 hoge

これで 3.5.1の 「hoge」という名前の環境が出来ます。
それで環境を指定するディレクトリに移動します。
そしてその中でバージョンを指定します。

$ pyenv local hoge

こうすることでこのディレクトリ内では 「hoge」の環境が適用されます。

これだけで環境のセッティングは完了です。

注意するのはanacondaと違って純粋なpythonなので必要なパッケージはインストールの必要があります。

パッケージのインストールと管理

以下のように必要なパッケージはインストールしていきましょう。下の numpyのインストールは例です。

$ pip install numpy

さて、他の人と環境を統一するためにはインストールしたパッケージのバージョンも同期する必要があります。
それでは自分の環境を出力してみます。

$ pip freeze > requirements.txt

pip freezeで右側のファイル名は出力ファイル名です。一般的に requirements.txtに出力するようなのでこの名前にするのがbetterかと思います。

例えば、numpyだけinstallしてみてrequirements.txtに出力してみました。

$ pip install numpy
$ pip freeze > requirements.txt
$ cat requirements.txt
numpy==1.11.1

他の人はこのファイルからパッケージをインストールします。

$ pip install -r requirements.txt

これでファイルに記述してあるパッケージがインストールされます。
githubのレポジトリのREADME内でパッケージをインストールさせるところでよく見かけます。

virtual-envの削除

最後に、このvirtual環境を削除する方法です。

$ pyenv uninstall hoge

これで作成したvirtual環境を削除出来ます。

295
321
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
295
321

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?