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
補足¶
[補足] 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 が使われていることが関係しているっぽいですが 詳しいことは不明です。
参考情報:
- 公式発表 : Sunsetting Python 2
- PEP(Pythonの仕様) : PEP-0373 -- Python 2.7 Release Schedule
[補足] virtualenvwrapper.sh を探す¶
virtualenvwrapper の機能を有効にするためには、 virtualenvwrapper.sh というファイルが必要になるのですが、 このファイルは実行環境によって場所が変わってしまいます。大抵は以下の場所にあります。 因みに、 Raspbian では後者のディレクトリにありました。
- /usr/local/bin/
- ${HOME}/.local/bin/
上記のどこにも見つからない場合は、 find で探すと見つかります。 あんまりファイル数が多いと検索に時間がかかってしまいますが。
find / -name 'virtualenvwrapper.sh'
not found と出力された方は PYVEWRAP と定義している変数の内容を ここで見つかったファイルパスに差し替えてください。
コメント
コメントを投稿