投稿日: | 最終更新日:
virtualenvでpython環境を管理
virtualenvを使って、pythonのための仮想環境を作成します。
virtualenvとは?
Pythonの独立した環境を構築するモジュールです。virtualenvは開発用のサンドボックスを作成し、pythonバイナリやパッケージを分離してくれます。 一つの開発機で複数の環境を簡単に管理することができます。つまり、virutalenvで環境を作ってそちらにインストールして試せば、システム環境は無傷で使えます。いくつも環境が作れ、pythonのバージョンで分けたりと色々と便利です。
Virtualenvwrapperとは?
Virtualenvだけでも十分に簡単に使用できますが、wrapperを導入することで各環境の管理、切り替えが簡単になります。virtualenvのwrapperという意味で、virtualenvをより使いやすくしてくれるツールです。Windowsには対応しておらず、LinuxとMac限定のツールとなっています。また、Python3.x系にも対応しています。
- すべてのvirtualenv 環境を一元管理できる
- 便利なコマンド
- 環境の切り替えがコマンドひとつ
- タブによるコマンド補完
- カスタマイズ可能なフック
- 拡張機能も自由に開発可
仮想環境のメリット
本来は競合する(同時にインストールできない)Pythonのパッケージを同一マシンで共存させることができます。また簡単に切り替えることができます。たとえば、Sphinx のバージョン「1.1」とバージョン「1.2」の両方でビルドできるようにしたい場合、virtualenv があれば複数台のマシンを用意することなく1台で動作検証できます。
仮想環境ディレクトリは自分のユーザディレクトリにも作成可能です。複数人で1つのOSを使用している場合、共用のPython 環境に一切影響を与えることなくお気に入りのパッケージを自由に入れられます。
準備
①Pythonとpipは以下を参考にして下さい。
→UbuntuにPythonとpipをソースビルドでインストールする
pipコマンドの非推奨について。
→pip listコマンドを実行すると非推奨(DEPRECATION)が表示される
私の環境
OS | Ubuntu 16.04.1 LTS 64bit |
---|---|
python | 2.7.9 |
pip | 9.0.1 |
virtualenvインストール
①「virtualenv」をインストールします。
sudo pip install virtualenv
②「virtualenv」のバージョン確認をします。
virtualenv --version
virtualenv使用
①まず、virtualenv環境(ここではenv)を作成します。以下のコマンドを入力し、カレントディレクトリに「env」を作ります。
virtualenv env
以下のように表示されます。※xxxxxはユーザ名が表示されます。
New python executable in /home/xxxxx/env/bin/python Installing setuptools, pip, wheel...done.
②作成されたenvを確認します。
ls env bin include lib pip-selfcheck.json
env以外のかつて作った仮想環境を表示します。私はホームディレクトリからlsで一覧を表示しました。
cd ls ~/.virtualenvs/ -l
drwxrwxr-x 5 username username 4096 1月 9 12:02 my_env drwxrwxr-x 5 username username 4096 1月 11 11:43 my_env3 drwxrwxr-x 5 username username 4096 1月 26 15:11 webapp
③env環境を有効化します。bashスクリプトのenv/bin/activateをsourceコマンドで実行します。
source env/bin/activate
有効化するとプロンプトの前に環境名「(env)」が表示されます。そして、環境変数PATHの先頭に「env/bin」が追加され、virtualenv環境のPythonが実行されます。
(env) xxxxx@xxxxx-dynabook-R731-C:~$
④例として、requests(HTTPクライアントのパッケージ)をpipでインストールします。requestsが、「env/lib/python2.7/site-packages」配下にインストールされます。
pip install requests
※pipコマンドのとき、sudoで実行しないように気をつけましょう。sudoを使うとPATHが異なるため、仮想環境外のpipを実行してしまう可能性があります。
以下のように表示されます。
Collecting requests Downloading requests-2.12.4-py2.py3-none-any.whl (576kB) 100% |████████████████████████████████| 583kB 1.1MB/s Installing collected packages: requests Successfully installed requests-2.12.4
⑤pythonを実行してみて、インポートできるか確かめます。Pythonパッケージの中にはコマンドとして実行可能なファイルが含まれている場合があります。
python >>> import requests >>>
⑥無効化する場合は、以下のようにコマンドを入力します。
deactivate
virtualenvwrapperインストール
virtualenvwrapperを入れると次のコマンド(抜粋)が使えるようになります。
- mkvirtualenv(virtualenvを作る)
- cdvirtualenv(virtualenvに移動する)
- workon(virtualenv環境で仕事する)
①「virtualenvwrapper」をインストールします。
sudo pip install virtualenvwrapper
②コマンド(virtualenvwrapper.sh)が存在するか、念の為検索します。
which virtualenvwrapper.sh
以下のように表示されます。
/usr/local/bin/virtualenvwrapper.sh
※virtualenvwrapper.sh は virtualenvwrapper を有効化するためのシェルスクリプトです。システムのPythonと同じディレクトリに virtualenvwrapper を入れた場合は「/usr/local/bin」あたりにあることが多いようです。
③これだけだとvirtualenvwrapperが使われないので、個人設定の「.bashrc」を編集します。vimで「bash_profile」を編集します。
vim ~/.bash_profile
※vimをインストールしていない場合は、以下を実行します。
sudo apt-get install vim
末尾に以下のような記述を追加します。これで「.bash_profile」->「bashrc」の順に実行されます。
if [ -f ~/.bashrc ]; then . ~/.bashrc fi
④vimで「bash_profile」を編集します。
vim ~/.bashrc
末尾に以下のような記述を追加します。virtualenvのトップディレクトリとなるWORKON_HOMEも書いておきます。
source /usr/local/bin/virtualenvwrapper.sh export WORKON_HOME=~/.virtualenvs export PROJECT_HOME=$HOME/dev/virtualenv
※「~/.bashrc」は、ユーザ個別の設定ファイルで、bash 起動時に読み込まれます。場所は、GUIでは見えませんが、「/home/username/」に存在します。
※共通設定の場合は、「/etc/.bashrc」ではなく「/etc/bash.bashrc」に書きます。
※WORKON_HOME は virtualenv 環境を一元管理するディレクトリを指定するための変数です。ここではユーザホーム直下の 「.virtualenvs」というディレクトリを使っていますが、場所は任意で結構です。$HOME直下に専用のディレクトリを作ってそこにいれると便利です。
⑤「bashrc」の変更内容を反映させます。
source ~/.bashrc
virtualenv+virtualenvwrapperの使用
①「webapp」という名前のサンドボックスを作成します。
mkvirtualenv webapp
②virtualenv環境を一覧表示します。①で「webapp」を作成しましたので1件表示します。
workon
以下のように表示されます。
webapp
③virtualenv環境に入ります。
workon webapp
virtualenv環境を削除する場合は、以下のようなコマンドを入力します。
rmvirtualenv webapp
virtualenv環境から抜ける場合は、以下のようなコマンドを入力します。
deactivate
その他の使い方
・サンドボックスの削除
一度入った固有環境からシステム(グローバル)に抜けたい場合はdeactivateコマンドを打ちます。
deactivate
・サンドボックスの削除
仮想環境をシステム(グローバル)へ一度抜けます。その後、以下のコマンドでサンドボックスを削除します。
rmvirtualenv 環境名
→UbuntuにPythonとpipをソースビルドでインストールする
→virtualenvでpython環境を管理
- Python 113
- 制作 54
- RaspberryPi 41
- Django 40
- WordPress 40
- Linux 27
- VPS 22
- JavaScript 21
- PHP 20
- HTML・CSS 19
- AWS 16
- 仮想環境 15
- レスポンシブデザイン 13
- マイコン 11
- WEB全般 11
- 動画製作 9
- Webサービス 8
- 統合開発環境 8
- PyCharm 7
- jQuery 7
- 機械学習 7
- AfterEffects 7
- 起業・設立 7
- Django REST framework 6
- C# 6
- デザイン 6
- SEO 6
- pydata 6
- Visual Studio 5
- 数学 5
- 携帯サイト 5
- heroku 5
- Mac 5
- illustrator 5
- node.js 5
- Anaconda 5
- Nginx 4
- Jupyter Notebook 4
- インフラ 4
- symfony 4
- Webスクレイピング 3
- photoshop 3
- Go言語 3
- PC 3
- Google Colaboratory 3
- ツール 3
- Docker 3
- facebook 3
- 作業効率化 3
- データベース 3
- Cloud9 3
- コマンド 2
- micro:bit 2
- Kali Linux 2
- Webサーバー 2
- MariaDB 2
- ドローン 2
- コンテナ 2
- DaVinci Resolve 2
- ネットワーク 2
- Java 2
- movie 2
- PCDJ 2
- 音楽 2
- XSERVER 2
- Ansible 1
- Vue.js 1
- JSON 1
- Bootstrap 1
- バージョン管理システム 1
- SSL 1
- S3 1
- ムームードメイン 1
- ネットワーク 1
- アニメーション 1
- D3.js 1
- Rhino 1
- アニメ 1
- git 1
- windows 1
- アクセス解析 1
- スマートフォン 1
- アフィリエイトノウハウ 1
- 知識 1
- TypeScript 1
- 役立つ本・書籍 1
- データサイエンス 1
- ESP32 1
- AI 1
- ownCloud 1
- API 1