[Python] venvを用いてプロジェクトごとに独立した環境を構築する
こんにちは、@yoheiMuneです。
今日は、Python標準の
僕は、Pythonに幾つかある仮想環境ツールを以下の基準で使い分けています。
また、現在のpipでのインストール状況も確認できます。
また、以下のコマンドでヘルプを確認することもできます。
今回の内容はyoheiMune/python-playground(Github)にもまとめました。
最後になりますが本ブログでは、Python、Swift、Go言語、フロントエンド、Linux、Node.js、インフラ、Java、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時に、解決の糸口を見つけられる」そんな目標でブログを書き続けています。今後も役立つネタを書いていきますので、ぜひ本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!
今日は、Python標準の
venv
という仮想環境ツールを用いて、プロジェクトごとに独立した環境を作る方法をブログに書きたいと思います。目次
venvとは
venvは、プロジェクトごとにsite-pakcagesを独立して管理できる仮想環境ツールで、Python3.3から公式に組み込まれています。このブログで以前には「pyenvの使い方」や「pyenv-virtualenvの使い方」を紹介しましたが、今回はそれとは別の仮想環境の作り方となります。僕は、Pythonに幾つかある仮想環境ツールを以下の基準で使い分けています。
- pyenv
- ローカル開発で利用。頻繁にPythonのバージョンとsite-packageを同時に切り替えたいので使ってます。これでanacondaも利用。
- venv
- Python3系の本番での環境構築に利用。
- virtualenv
- Python2系の本番での環境構築に利用。
venv
は基本的にはvirtualenv
と同じような機能なので、Python3.3以降ではvenv
を使えば事足りるようです。venvを使う
それではvenvを使って仮想環境を構築してみたいと思います。仮想環境を新規作成する
新規に作成する場合には、以下のコマンドを実行します。# python3 -m venv <環境を作るディレクトリ> $ python3 -m venv env1 # Windowsの場合 c:\>c:\Python35\python -m venv env1実行すると、
env1
というディレクトリが作成され、その中にいくつかのファイルが配置されます。$ ls -la env1 total 8 drwxr-xr-x 6 munesadayohei staff 192 11 16 09:23 . drwxr-xr-x 4 munesadayohei staff 128 11 16 09:23 .. drwxr-xr-x 12 munesadayohei staff 384 11 16 09:23 bin drwxr-xr-x 2 munesadayohei staff 64 11 16 09:23 include drwxr-xr-x 3 munesadayohei staff 96 11 16 09:23 lib -rw-r--r-- 1 munesadayohei staff 114 11 16 09:23 pyvenv.cfgこの
env1
というフォルダ内が仮想環境となります。仮想環境を有効化する
まずは作成したディレクトリに入ります。$ cd env1そして、仮想環境を有効化するために、以下のコマンドを実行します。
# for bash (like MacOSX). $ source bin/activate # Windowsの場合 C:\> <venv>\Scripts\activate.batこれを実行すると環境変数(
$PATH
)が更新され、仮想環境が有効になります。cshやPowerShellでのやり方もありますので、詳しくはドキュメントをご確認ください。仮想環境の状態を確認してみる
有効化された状態を確認してみます。$ which python /tmp/env1/bin/python $ which pip /tmp/env1/bin/pipそれぞれ仮想環境(
env1
フォルダ)のパスが使われていることが分かります。site-packages
についても確認してみます。$ python >>> import sys, pprint; pprint.pprint(sys.path) [ '', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload', '/tmp/env1/lib/python3.6/site-packages' ]パスの読み込みの一番最後に、仮想環境にあるsite-packagesが指定されていることがわかります。
また、現在のpipでのインストール状況も確認できます。
$ pip freeze # Nothing...何も無いことがわかります。
仮想環境から脱出する
最後に仮想環境から抜け出すところですが、以下のコマンドを実行します。$ deactivateこれを実行すると環境変数などが有効化前の状態に戻ります。
参考資料とヘルプ
詳細は公式ドキュメントをご確認ください。また、以下のコマンドでヘルプを確認することもできます。
$ python3 -m venv -h
今回の内容はyoheiMune/python-playground(Github)にもまとめました。
最後に
Pythonの仮想環境はいくつかの作り方があるので、それぞれを学んでみたいと思ってお勉強中です。「pyenvの使い方」や「pyenv-virtualenvの使い方」の記事もおすすめなので、興味があったらぜひぜひ見てみて下さい。最後になりますが本ブログでは、Python、Swift、Go言語、フロントエンド、Linux、Node.js、インフラ、Java、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時に、解決の糸口を見つけられる」そんな目標でブログを書き続けています。今後も役立つネタを書いていきますので、ぜひ本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!