virtualenvwrapper を導入する for Raspbian and other OS

概要

Raspbian (Raspberry Piの推奨OS) において Python の仮想環境マネージャ virtualenvwrapper を導入する。

Raspbian以外でも導入可能な書き方をしているのでそれ以外のOSでもOK(のはず)

導入方法

pip は既に入っているものとします。 Python2.x がデフォルトになっている方は [補足] Python2の脱却 へ。

pip install virtualenvwrapper

これでインストールはされましたが、有効化するために更なる設定が必要です。 ~/.bashrc に以下を記載します。

# virtualenvwrapper の設定
export PYVEWRAP=${HOME}/.local/bin/virtualenvwrapper.sh
export WORKON_HOME=$HOME/.virtualenvs
if [ -f ${PYVEWRAP} ]; then
  source ${PYVEWRAP}
else
  echo "${PYVEWRAP} not found."
fi

記載したら、 source.bashrc を読み直しましょう。 再ログインしても構わないです。

source ~/.bashrc

以下のようなメッセージが出れば導入完了です。 not found と表示された方は [補足] virtualenvwrapper.sh を探す へ。

virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/postmkproject
virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/initialize
virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/premkvirtualenv
virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/postmkvirtualenv
virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/prermvirtualenv
virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/postrmvirtualenv
virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/predeactivate
virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/postdeactivate
virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/preactivate
virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/postactivate
virtualenvwrapper.user_scripts creating /home/pi/.virtualenvs/get_env_details

利用法

仮想環境の作成と有効化

mkvirtualenv で仮想環境を作成し、 workon コマンドでその環境を有効にします。

# 仮想環境の作成
mkvirtualenv test_prj
# 有効化
workon test_prj
# 有効化すると、プロンプトの前に環境名が見えるようになります
# 例えばこんな感じ  --->  (test_prj) pi@raspberrypi:~ $

新規に作成する仮想環境は、デフォルトだと何も入っていないクリーンな環境が作成されています。 pip コマンドで見てみましょう。

# 現在の環境でインストールされているパッケージを見る
pip freeze

仮想環境を離れる

現在の環境を離れたいときは、 deactivate を使います。 exit あるいは Ctrl+D だとシェルのセッションを抜けてしまうので注意。

# 仮想環境から抜ける
deactivate

仮想環境を削除する

不要になった環境を削除するときには rmvirtualenv を使います。

rmvirtualenv test_prj

それ以外の詳しい使い方

より詳しい使い方は公式ドキュメントを参照。

補足

[補足] Python2の脱却

Raspbian を 2020年1月にダウンロードしたのですが、 この時点だと Python2.x がデフォルトになっていました。 2020年1月1日にEOLを迎えているので注意。 こちらをPython3.x系に替えておきましょう。

python コマンドは便宜上 symlink でリンクを張っています。 このリンクを張り替えてあげることで Python3.x 系に移行が可能です。 以下のコマンドは root で実施してください。

cd /usr/bin/
rm python
ln -s `which python3` python

上記を実施後、Pythonのバージョンを確認しておきます。

python -V

Python3.x というような文字列が表示されたらOKです。 念のため、 pip コマンドもバージョンを確認しておきましょう。

pip -V

因みに、不要となったPython2.xですが、 apt remove などすると変なことが起きる可能性があるので 削除まではしない方がよさそうです。Linuxのあらゆるところに Python が使われていることが関係しているっぽいですが 詳しいことは不明です。

参考情報:

[補足] virtualenvwrapper.sh を探す

virtualenvwrapper の機能を有効にするためには、 virtualenvwrapper.sh というファイルが必要になるのですが、 このファイルは実行環境によって場所が変わってしまいます。大抵は以下の場所にあります。 因みに、 Raspbian では後者のディレクトリにありました。

  • /usr/local/bin/

  • ${HOME}/.local/bin/

上記のどこにも見つからない場合は、 find で探すと見つかります。 あんまりファイル数が多いと検索に時間がかかってしまいますが。

find / -name 'virtualenvwrapper.sh'

not found と出力された方は PYVEWRAP と定義している変数の内容を ここで見つかったファイルパスに差し替えてください。

コメント

このブログの人気の投稿

gnuplot: グラフの色を変更する

[Linux] rsyncで進捗を確認する

gnuplotで縦線を引きたい