Table Of Contents

Previous topic

イントロダクション

Next topic

初めてのFlaskアプリ

This Page

仮想環境を構築する

仮想環境構築に必要なパッケージをインストール

なぜ仮想環境が必要なのか?

pythonを含め、一般的なプログラミング言語で開発していると次のようなニーズが発生すると思います。

  • プロジェクト毎に異なるライブラリのバージョンを導入する必要がある
  • 新しいライブラリバージョンで現行プロジェクトが動くかテストしたい
  • 新しいパッケージをちょっと導入して試してみたいが、現在の環境を汚したくない

このような場合にシステムの環境とは別に個別の仮想環境が構築できるようになっていれば上のニーズを 満たせるため、開発がしやすくなります。

pythonには仮想環境を構築するパッケージとしてvirtualenvがあります。

必要なパッケージ

導入するパッケージは以下の3つです

  • pip パッケージマネージャ
  • virtualenv pythonの仮想環境構築ツール
  • virtualenvwrapper virtualenvをより快適に使うためのsh拡張

ターミナルから以下のコマンドを順に実行します。

curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
sudo python get-pip.py
sudo pip virtualenv
sudo pip install virtualenvwrapper

virtualenvwrapperを有効にするために、.bashrcに以下の行を追加(osx+homebrewの場合)してsourceしてください。 尚、virtualenvwrapper.shがインストールされるpathはOSによってかわりますので適切なpathを指定してください

source /usr/local/share/python/virtualenvwrapper.sh

Note

virtualenv-burrito を利用すれば上記の作業がコマンドライン一発で行えるようですが、筆者は使ったことがありません

仮想環境を構築

今回つくるwikiの名前をflaskiにするので、flaskiという名前の仮想環境をつくります。新たに仮想環境を用意するにはmkvirtualenvコマンドを使います。

mkvirtualenv flaski
New python executable in flaski/bin/python
Installing setuptools............done.
Installing pip...............done.
virtualenvwrapper.user_scripts creating /Users/kzfm/.virtualenvs/flaski/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/kzfm/.virtualenvs/flaski/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/kzfm/.virtualenvs/flaski/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/kzfm/.virtualenvs/flaski/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/kzfm/.virtualenvs/flaski/bin/get_env_details
(flaski)localhost@kzfm:flask $

仮想環境に入っていることはプロンプトの先頭に(flaski)と表示されることでわかります。

その他のコマンド

virtualenv & virtualenvwrapper
コマンド 説明
mkvirtualenv [仮想環境名] 新たに仮想環境を用意します
rmvirtualenv [仮想環境名] 仮想環境を削除します
lsvirtualenv 仮想環境の一覧を表示します
workon [仮想環境名] 仮想環境に入ります
deactivate 仮想環境から抜けます

Flaskパッケージのインストール

FlaskとSQLAlchemyをインストールするにはpipコマンドを使います。

pip install flask
pip install sqlalchemy

インストールされたパッケージはpip freezeで出力出来ます。

Flask==0.9
Jinja2==2.6
SQLAlchemy==0.8.0b2
Werkzeug==0.8.3
wsgiref==0.1.2

例えば開発環境のパッケージ構成を本番環境に構築したい場合に

pip freeze > requirements.txt

で依存するパッケージを作っておいて、別のマシンにファイルをコピーして

pip install -r requirements.txt

とやればいいので便利です。