はじめに
はじめましてa-min3150です。エンジニアへの転職を目標に学習中です。
アウトプットのためEnvaderで学習したこと、ハマったことなどを書いていきたいと思います。
今回の学習内容
EnvaderでPythonの環境構築について学習したのでアウトプットします。
今回は第4回目でmacOSでのvenv
を使った仮想環境設定についてです。
第1回(Pythonとは)はこちら
第2回(pyenvについて)はこちら
第3回(pipについて)はこちら
第5回(virtualenvについて)はこちら
第6回(requirements.txtの使い方)はこちら
第7回(git cloneの使い方)はこちら
仮想環境とは
Python を使って開発や実験を行うときは、用途に応じて専用の実行環境を作成し、切り替えて使用するのが一般的です。こういった、一時的に作成する実行環境を、「仮想環境」 と言います。
仮想環境は、次のような目的で使われます。
- システム全体で使うPython環境に影響を与えずにモジュールの追加・入れ替えをしたい。
- 異なるバージョンの Python を使いわけたり、同じモジュールの、複数のバージョンを使い分けたい。
例えば、開発中のWebアプリケーション開発では、Python 3.7 で Webアプリケーションフレームワークとして Django の 1.10 を使い、新しいプロジェクトでは Python 3.8 とDjango バージョン 1.11 を使用したい場合など、簡単に切り替えられるようにしたい。
引用元:仮想環境(python japan)
venvコマンドを使う
pythonを使った開発を行う時は、プロジェクトごとに実行環境を作成し、それらの環境を切り替えて使用するのが一般的です。
venv
を使うとpip
でインストールしたパッケージをプロジェクトごとに独立させることができます。
pip
コマンドについてはこちらで解説していますので参照してください。
venvとvirtualenvの違い。
venv
はvirtualenvがPython3.3から標準機能として取り込まれたもので、他からソフトウェアをインストールする必要がないため、簡単に仮想環境を作成管理することができます。
venvとvirtualenvの違いはPython自身の管理ができるか否かです。
-
venvはPython 3.x.x 下に組み込まれた機能なので、Python自体のバージョン管理はできません。
-
virtualenvはPython自体のバージョンも管理することができます。
venvで作成した仮想環境はPythonの別のバージョンに切り替えることはできないので注意しましょう。
venvを使った仮想環境の利用
仮想環境を利用するには主に
作成、起動、停止
の三つの手順が必要になります。
新しい環境の作成
まずは新しい仮想環境を作成しましょう。
$ mkdir プロジェクトディレクトリ名
$ cd プロジェクトディレクトリ名
$ python3 -m venv 仮想環境名
まずは専用のプロジェクトディレクトリを作成して移動しましょう。
そしたら、プロジェクトディレクトリの直下に python3 -m venv 仮想環境名 として新しく仮想環境を作成しましょう。
ちなみに仮想環境名はvenvとすることが多いです。
仮想環境の作成ができました。
仮想環境の起動
仮想環境を作成しただけでは仮想環境を使用することはできません。
起動することで初めて利用できるようになります。
$ source 仮想環境名/bin/activate
sourceコマンドの後に 仮想環境名/bin/activate とすることで、作成した仮想環境を起動することができます。
コマンドラインには以下のように先頭に仮想環境名が書かれていると思います。その状態の時が仮想環境を起動している状態です。
(仮想環境名) $
pythonのバージョンを確認しましょう。
(仮想環境名) $ python -V
Python 3.x.x
venvを実行するとコマンドは作成した環境で設定されているバージョンのコマンドが実行されるようになります。
仮想環境の停止
仮想環境を停止するときは deactivate
コマンドを実行することで仮想環境を終了することができます。
(仮想環境名) $ deactivate
$
実行した後に仮想環境名がコマンドラインの先頭から消えていれば、仮想環境を停止することができています。
macOSでvenv実践してみる
//デスクトップ上に「test_venv」というディレクトリを作成
macOS:Desktop user$ mkdir test_venv
//cdコマンドで「test_venv」ディレクトリへ移動
macOS:Desktop user$ cd test_venv/
//この時点での「python」のパスを確認
macOS:test_venv user$ which python
/Test/test/.pyenv/shims/python
//「test」という仮想環境を作成する。
macOS:test_venv user$ python -m venv test
//lsコマンドで中身を確認すると「test_venv」の中に「test」ディレクトリが作成された。
macOS:test_venv user$ ls
test
//仮想環境を起動する。
macOS:test_venv user$ source test/bin/activate
(test) macOS:test_venv user$ //(test)となり、仮想環境が起動した状態になる。
//この状態で「python」のパスを確認(仮想環境の「test」ディレクトリ内を参照するようにパスが変わっていることが分かる。)
(test) macOS:test_venv user$ which python
/Test/test/Desktop/test_venv/test/bin/python
//仮想環境を終了させる
(test) macOS:test_venv user$ deactivate
//(test)が消えて仮想環境が終了した。
macOS:test_venv user$
まとめ
今回は venv
について解説しました。
-
venv
とvirtualenv
には、
venvではできないが、virtualenvでは仮想環境で使うPythonのバージョン指定することが可能であるという違いがある。 -
仮想環境を利用するときは
作成、起動、停止 の3つの手順があるのでこれらも覚えておきましょう。
次回はvirtualenvの使い方について解説します。
引用サイト
- Envader(エンベーダー):https://envader.plus/
- コース一覧:https://envader.plus/course
- Python環境構築コース:https://envader.plus/course/8
- 今回解説したコースシナリオ:https://envader.plus/course/8/scenario/1075
- 仮想環境(python japan)