Pythonでは、ローカルPCの中に独立したPython仮想化環境を作れます。
開発するサイト/アプリケーション毎に必要となるパッケージやバージョンが異なるものなので、1つの環境にそれらがごちゃごちゃ入っていると、競合起きる場合があります。
仮想化環境が作れる事で、その環境毎に必要なパッケージをインストールする事ができるので、プロジェクト毎にPCを用意したり、複数のプロジェクトの環境を無理に統一したりするような問題からは解放されます。もちろん、仮想化環境毎にPythonのバージョンを変える事もできます。
venv モジュール
venv モジュールは、軽量の “仮想環境” の作成のサポートを提供します。仮想環境には、仮想環境ごとの site ディレクトリがあり、これはシステムの site ディレクトリから分離させることができます。それぞれの仮想環境には、それ自身の Python バイナリ (様々な Python バージョンで環境を作成できます) があり、仮想環境ごとの site ディレクトリに独立した Python パッケージ群をインストールできます。
仮想環境の作成(venv モジュールの使い方)
(注)pyvenvというのはvenvモジュールの外部コマンドとしてのスクリプトで、中身はvenvモジュールのmain()を叩いているだけです。
①: 仮想環境を作る
Windows では、関連する PATH および PATHEXT の設定をしていないなら、以下のように pyvenv スクリプトを呼び出せます。myenv は仮想環境の名前なので任意。
c:\Python33\Tools\Scripts\pyvenv.py myenv
C:\Users\●●\myenv に作成した仮想環境のディレクトリが作成されます。
myenv
├── Scripts
│ ├── activate.bat
│ ├── Activate.ps1
│ ├── deactivate.bat
│ ├── Deactivate.ps1
│ ├── pyexpat.pyd
│ .
│ .
│ .
│ その他もろもろ
│
├── include
├── Lib
│ ├── site-packages
│ └── tcl8.5
│ └── init.tcl
└── pyvenv.cfg
● pyvenv.cfg(設定ファイル)
home = C:\Python33
include-system-site-packages = false
version = 3.3.3
pyvenvはデフォルトではシステムのsite-packagesとは独立していますが、含めたい場合にはinclude-system-site-packagesをtrueにしてあげればいい。
②: ①で作った仮想環境に入る
プロンプトンに以下を記述し仮想環境に入る。
C:\Users\●●\myenv\Scripts\activate
プロンプトンの表示が以下のようになり、作成した仮想環境myenv に入った事が確認できる。
(myenv) C:\Users\●●>
③: 仮想環境でファイルを使ってみる
Scripts ディレクトリに下記のtest.py ファイルを配置。
print('aaa')
仮想環境下のファイル test.py にアクセス。
(myenv) C:\Users\hiro>test.py
aaa
④: 仮想環境下にパッケージをインストールしてみる
● まず、パッケージ管理ツールの distribute をインストールします。
- http://python-distribute.org/distribute_setup.py よりダウンロードします。
- distribute_setup.py を実行すると distribute-0.6.49 の圧縮ファイルが作成されるので解凍します。
- 解凍した distribute-0.6.49 フォルダを任意のディレクトリに移動します。
今回は C:\Users\hiro\myenv ディレクトリに移動しますが、べつにどこでも構いません。 - python.exe にパスを通します。
③のdistribute-0.6.49 フォルダのパスを通します。
プロンプトンより以下を実行します。
cd C:\Users\hiro\myenv\distribute-0.6.49するとプロンプトンは以下のような表示になります。
(myenv) C:\Users\hiro\myenv\distribute-0.6.49> - プロンプトンで以下を実行し、インストールをします。
(myenv) C:\Users\hiro\myenv\distribute-0.6.49>python setup.py install - C:\Users\hiro\myenv\Lib\site-packages ディレクトリに distribute のファイル群が作成されます。
distribute をインストールすると easy-install が使えるようになります。
● パッケージ管理ツールの pip をインストールします。
distribute をインストールした事で easy-install が使えるようになったので easy-install を使ってインストールします。
プロンプトンより以下を実行。
(myenv) C:\Users\hiro>easy_install pip
C:\Users\hiro\myenv\Lib\site-packages ディレクトリに pip のファイル群が作成されます。
(myenv) C:\Users\hiro>pip help
にてきちんとインストールされたかを確認。
⑤: 仮想環境から出る
下記を実行
(myenv) C:\Users\hiro>deactivate
-h をつけて実行すると、利用できるオプションが表示されます
c:\Python33\Tools\Scripts\pyvenv.py myenv -h
usage: venv [-h] [--system-site-packages] [--symlinks] [--clear] [--upgrade]
ENV_DIR [ENV_DIR ...]
Creates virtual Python environments in one or more target directories.
positional arguments:
ENV_DIR A directory to create the environment in.
optional arguments:
-h, --help show this help message and exit
--system-site-packages
Give the virtual environment access to the system
site-packages dir.
--symlinks Try to use symlinks rather than copies, when symlinks
are not the default for the platform.
--clear Delete the environment directory if it already exists.
If not specified and the directory exists, an error is
raised.
--upgrade Upgrade the environment directory to use this version
of Python, assuming Python has been upgraded in-place.
Once an environment has been created, you may wish to activate it, e.g. by
sourcing an activate script in its bin directory.