python virtualenvによる仮想環境の作成

投稿者: | 2013年5月28日

virtualenvを使ったpythonの仮想環境構築作成と切り替えについて。

kindleの中身をよく触っていた頃には、ほぼすべて海外の情報だったこともあってpythonで書かれたスクリプトをしばしば見かけました。あまりわからないままいくつか改変しながら使っていたのを思い出します。
最近またpythonをサーバー用に使おうと思っているのですが、環境を作るところで情報を求めてwebをさまよいながら構築して大変だったので自分のために備忘録として書いておくことにします。すぐ忘れるでしょうし…

今回混乱した問題としてpythonのパッケージインストール方法にeasy_installとpipがあり、説明しているサイトによって使っている物が違うということとvirtualenvについてもvirtualenvwrapperを使うか使わないかでも少し違いがあることでした。

以降インストールにはportsを使っているのでFreeBSD用の内容ですが、入れた後は同じなので仮想環境の構築部分からはLinux等でも同等の手順になるはず。
 

準備

python本体と周辺のパッケージをOSの基本環境にすべてを入れてしまっても良いのですが、サーバーとして使う場合には仮想環境を使うというのがよく行われるようなのでここでもそのようにします。これのおかげで環境を切り替えるだけで簡単に2系と3系を同じマシン上で動かせるのでやっておいた方が良いように思います。

前回OSをインストールしてportsの更新を行ったところから。
せっかくportsがあるのでpy-virtualenvを使ってインストール。依存関係でpython(5/27時点では2.7.5)も入ります。

#cd /usr/ports/devel/py-virtualenv
#make install clean

同時にsphinxなど無くてもよさそうな物まで入ってしまうので、気になる場合にはpy-virtualenvを使わずにpy-distutils-extraを入れてeasy_installを使ってvirtualenvを入れた方が良いかもしれません。他にはports/devel/py-pipもあるのでこれを入れてpipでvirtualenvを入れるのも可能です。

今回はpython3.3を使いたいのでこちらもportsからインストール。

#cd /usr/ports/lang/python33
#make install clean

5/27時点では3.3.2でした。
両方入れてもpythonコマンドは/usr/local/bin/python2へのシンボリックリンクになり、3系を使う場合にはpython3とすれば使えます。
 

仮想環境の作成

以下のコマンドでカレントディレクトリにpython3.3を使うtestenvという名前の環境(ディレクトリ)ができます。

$virtualenv --python=/usr/local/bin/python3.3 testenv

環境を有効化するには、bashの場合

$source testenv/bin/activate

tcshなどcsh系の場合はこちら

%source testenv/bin/activate.csh

有効になると以下のようにプロンプトの前に環境の名前がつくようになり、

[testenv] $

この状態であれば変更した環境にあるpythonを使うことになります。
環境を抜けるには

$deactivate

間違ってexitにするとシェル自体を抜けてしまいます。

python2.7.5(OSのデフォルトバージョン)の環境で作りたい場合はオプションをつけないか、バージョンを指定して環境が作成できます。

$virtualenv testenv
$virtualenv --python=/usr/local/bin/python2.7 testenv

とりあえず今回はここまで。
次でDjangoを使えるようにしたいと思っています。
 
 
 
 
 
 
 
 
 

#バージョンの違うpythonを指定する方法がよくわかっていないので以下はメモ。

(メモ) virtualenvwrapperを使う場合

portsにpy-virtualenvwrapperがありますが、あまりにもいらない物が入りすぎるのでpipでインストールした方が良いように思います。
また、virtualenvwrapperはbash用なのでbashも入れます。

#cd /usr/ports/devel/py-pip
#make install clean
#pip install virtualenvwrapper
#cd /usr/ports/shells/bash
#make install clean

標準の仮想環境置き場を指定します。
ホームディレクトリのに.virtualenvsディレクトリを作ってその下に置くのであれば、

export WORKON_HOME=~/.virtualenvs

毎度書くのも面倒なので.bashrcにも書いておきます。
その後、bashを起動して

$source /usr/lobal/bin/virtualenvwrapper.sh
$makevirtualenv testenv

これでtestenvが作成されて、その環境用のshellになります。
環境を抜けるには

$deactivate

上にも書きましたがvirtualenvwrapperを使った場合に別のバージョンに指定する方法はよくわからないのと、現時点ではそこまで頻繁に環境を行き来するつもりもないのでこちらは使いません。

python virtualenvによる仮想環境の作成」への1件のフィードバック

  1. ピンバック: Djangoを使ってみる その1 - 記録

コメントを残す

メールアドレスが公開されることはありません。