はじめに
はじめましてa-min3150です。エンジニアへの転職を目標に学習中です。
アウトプットのためEnvaderで学習したこと、ハマったことなどを書いていきたいと思います。
今回の学習内容
EnvaderでPythonの環境構築について学習したのでアウトプットします。
今回は第5回目でmacでのvirtualenv
を使った仮想環境設定についてです。
第1回(Pythonとは)はこちら
第2回(pyenvについて)はこちら
第3回(pipについて)はこちら
第4回(venvについて)はこちら
第6回(requirements.txtの使い方)はこちら
第7回(git cloneの使い方)はこちら
virtualenv
について
virtualenvは一つのシステム内に複数の開発環境(仮想環境)を作ることができます。
開発するアプリが変わった際に virtualenvを使って仮想環境を作成するだけで、パッケージ、バージョンの変更ををスムーズに行うことができます。
venvとvirtualenvの違い
venv
はvirtualenv
がPython3.3から標準機能として取り込まれたもので、他からソフトウェアをインストールする必要がないため、簡単に仮想環境を作成管理することができます。
-
venvとvirtualenvの違いはPython自身の管理ができるか否かです。
-
venvはPython 3.x.x 下に組み込まれた機能なので、Python自体のバージョン管理はできません。
-
virtualenvはPython自体のバージョンも管理することができます。
-
venvで作成した仮想環境はPythonの別のバージョンに切り替えることはできないので注意しましょう。
virtualenvのインストール
$ sudo pip install virtualenv
Pythonにデフォルトで組み込まれているコマンドではないためインストールする必要があります。
virtualenvを使った仮想環境の利用
前回のvenv
と同じで。
仮想環境を利用するには主に
作成、起動、停止
の3つの手順が必要になります。
新しい環境の作成
まずは新しい仮想環境を作成しましょう。
$ mkdir プロジェクトディレクトリ名
$ cd プロジェクトディレクトリ名
$ python3 -m virtualenv 仮想環境名
or
$ python3 -m virtualenv -p 利用したいPythonのバージョン(例: python3.6) 環境名
まずは専用のプロジェクトディレクトリを作成して移動しましょう。
そしたら、プロジェクトディレクトリの直下に python3 -m virtualenv 仮想環境名
として新しく仮想環境を作成しましょう。オプション -p を使用すればPythonのバージョンを指定することができます。
仮想環境の起動
仮想環境を作成しただけでは仮想環境を使用することはできません。
起動することで初めて利用できるようになります。
$ source 仮想環境名/bin/activate
sourceコマンドの後に 仮想環境名/bin/activate とすることで、作成した仮想環境を起動することができます。
コマンドラインには以下のように先頭に仮想環境名が書かれていると思います。その状態の時が仮想環境を起動している状態です。
(仮想環境名) $
pythonのバージョンを確認しましょう。
(仮想環境名) $ python -V
Python 3.x.x
venvを実行するとコマンドは作成した環境で設定されているバージョンのコマンドが実行されるようになります。
仮想環境の停止
仮想環境を停止するときは deactivate コマンドを実行することで仮想環境を終了することができます。
(仮想環境名) $ deactivate
$
実行した後に仮想環境名がコマンドラインの先頭から消えていれば、仮想環境を停止することができています。
macOSでvirtualenv
を実践してみる
pipコマンドを使ってvirtualenvをインストールする。
macOS:Desktop user$ sudo pip install virtualenv
pip list
でインストールできたか確認
macOS:Desktop user$ pip list
Package Version
------------ -------
pip 22.0.4
setuptools 58.1.0
virtualenv 20.14.1
Desktop上に「test_virtualenv」ディレクトリを作成し、そこに移動します。
macOS:Desktop user$ mkdir test_virtualenv && cd $_
インストールしているpythonのバージョンリストを確認します。
(globalではpythonバージョン3.10.2に設定されている。)
macOS:test_virtualenv user$ pyenv versions
system
2.7.10
* 3.10.2 (set by /Users/user/.python-version)
3.7.0
「test_virtual」という仮想環境を作成し、pythonは2.7を指定します。
macOS:test_virtualenv user$ python -m virtualenv -p python2.7 test_virtual
「test_virtual」という仮想環境が作成された.(指定した仮想環境名と同じ名前のディレクトリが出来上がる。)
macOS:test_virtualenv user$ ls//lsコマンドでディレクトリ作成された確認。
test_virtual
virtualenvの仮想環境を起動する
macOS:test_virtualenv user$ source test_virtual/bin/activate
(test_virtual)がつき、仮想環境の起動を確認。
(test_virtual) macOS:test_virtualenv user $
この状態でpythonのバージョンが指定したものになっているか確認します。
(test_virtual) macOS:test_virtualenv user $ python -V
Python 2.7.10
//指定したバージョンになっている!!
仮想環境を終了させる。
(test_virtual) macOS:test_virtualenv user $ deactivate
macOS:test_virtualenv user $
//(test_virtual)の表示がなくなり、終了できた。
終了させるとPythonのバージョンはpyenv
で設定しているものに戻ります。
macOS:test_virtualenv user $ python -V
Python 3.10.2
まとめ
今回はvirtualenv
について解説しました。
virtualenv
とvenv
には明確な違いがあり、
-
pythonのバージョンを変える場合があるときは
virtualenv
を使うようにしましょう。 -
仮想環境を利用するときは作成、起動、停止3つの手順があります。
次回はrequirements.txtの使い方について解説します。
引用サイト
- Envader(エンベーダー):https://envader.plus/
- コース一覧:https://envader.plus/course
- Python環境構築コース:https://envader.plus/course/8
- コースシナリオ:https://envader.plus/course/8/scenario/1074