virtualenv

Raspberry Piはワンボードマイコンであると同時にLinuxマシンでもあるので、色々な開発言語を使用する事ができるが、PiはPythonから来ている事からも分かるように開発元はPython言語を推奨している。

現在のPython言語の最新バージョンは3.xだが、バージョン2.xが広く使われていたのと、3.xと2.xの互換性の問題から現状では両方のバージョンが併用されていて、Raspberry Pi(Raspbian)にも両方のバージョンがインストールされている。

Raspberry Piのコンソールで単にPythonを起動すると

Python 2.7.3 (default, Mar 18 2014, 05:13:23)
[GCC 4.6.3] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.

このようにPython2.7が起動する。Python3.xを使うためには「python3」で起動すれば良い。

Python 3.2.3 (default, Mar  1 2013, 11:53:50)
[GCC 4.6.3] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.

ここから分かる通り現状ではまだPython2.xがメインで、Raspberry PiにおけるPython3.xはテスト的な扱いになっている。Python3.xがいずれ主流になるのだとは思うが、当分の間は両方のバージョンが混在する状態になってしまうのは避けられず、どちらかのバージョンでしか動作しないモジュールもあるので色々と問題が出る可能性がある。

そのために特定バージョンのPython実行環境を仮想的に提供するツール「virtualenv」が存在する。これを使用すると大元の環境とは分離した仮想環境でPythonを実行する事ができるので、その環境でプログラムを動作させたり、モジュールをインストールして試すことができる。

virtualenvによって構築された仮想環境は言ってみれば「箱庭」的なもので、他には影響を与えないので自由に色々と試すことができるというメリットがある。

インストールは以下のように行う。

$ sudo apt-get install python-pip
$ sudo apt-get install python-virtualenv

ネット上でvirtualenvの解説を読むと、virtualenvwrapperも一緒にインストールして使用する例が多いのだが、virtualenv単体で使用するのはそれほど難しくないし、なによりもイメージが掴みやすいので最初は単体で使用してみる事をお勧めする。

インストールが完了したら、以下のコマンドで仮想環境を作成する

$ virtualenv -p python3 env32

これは「env32」というフォルダを作成して、そこにpython3の環境を作成するという意味になる。virtualenvの古いバージョンでは実行時に「–no-site-packages」オプションを指定しないと、インストール済みモジュールもコピーされてクリーンな環境にはならなかったのだが、現在のバージョンでは何も指定しない場合はインストール済みモジュールをコピーしないようになった。

逆にインストール済みモジュールを引き継ぎたい場合には「–system-site-packages」を指定する必要がある。ネット上の解説ではこのあたりが古いままになっている所もあるので、注意が必要。

仮想環境の構築にはちょっと時間がかかるので、途中で止まってしまっても焦らずに待つこと。

構築が終わったら指定したフォルダができているはずなので、そこに移動して以下のコマンドを実行する。

$ source bin/activate

これでpythonの実行環境はそのフォルダの中にコピーされたものが使用されるようになる。試しにpythonとだけ入力して実行してみると

Python 3.2.3 (default, Mar  1 2013, 11:53:50)
[GCC 4.6.3] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.

先ほどまでとは違ってPython3.xが起動するのが分かると思う。この状態でモジュールのインストール等を行うと、それはこの仮想環境フォルダの中だけに反映される。つまり、必要が無くなったらフォルダごと削除してしまえば、他に全く影響を与えずに消すことができる。

仮想環境を終了する場合は

$ deactivate

を実行すれば良い。仮想環境下ではプロンプトの頭に仮想環境の名前(フォルダ名)が表示されているが、deactivateすると元に戻るのが分かるはずだ。この環境はストレージ容量が許す限りは何個でも作成できるので、バージョンの違うモジュールで動作を試すような場合には役立つだろう。

Raspberry Piでroot権限なしでGPIOやi2cが使用できる「Quick2Wire」ライブラリは、Python3のみに対応で公式なドキュメントでもvirtualenvの使用が推奨されている。そちらのインストールや使用方法についてはまた次回に。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中