Pythonの仮想環境は便利なツール
- Pythonで開発やテストを行う時は、用途に応じて専用の実行環境を一時的に作成し、切り替えて使用する便利な方法として知られるのは「仮想環境」 と言います。
- 仮想環境は以下のような利便性と特徴があります
- Python全体環境に影響を与えずに特定なモジュールの追加・入れ替えをしたい。
- 同一モジュール、複数のバージョンを使い分けることができます。例: Django v1.10 と v1.11 を使い分けたい、簡単に切り替えられるようにしたいです。
- 違うバージョンの Python をテストしたい。 例: Python2.x 、Python3.x を切り替えたいです。
Pythonの仮想環境の作成
- Pythonの仮想環境を作成するにはvenvパッケージが必要となります
- Python3.3から標準機能として同梱されますので、特にインストールする必要はありません
- Pythonの仮想環境作成コマンド
python -m venv [environment_name] venv: 仮想環境管理パッケージ名 environment_name: 任意の名前で仮想環境を命名 例: python -m venv test_site
- 仮想環境作成コマンド実行後にいろいろなサブディレクトとファイルが作成されます
Python仮想環境の起動と終了
- 仮想環境の起動:Scriptsディレクトリにあるバッチファイル:activate を実行させます
[environment_name]\Scripts\activate [environment_name]:作成された環境名 例: env\Scripts\activate
Python仮想環境の削除
- 仮想環境の削除は単にその仮想環境のディレクトリを削除すればよいです
- 仮想環境の管理パッケージ:virtualenvwrapper があります、このパッケージをインストールして、rmvirtualenvコマンドで仮想環境の削除も出来ます
Python仮想環境とソースコードディレクトリ
- Pythonの仮想環境はソースコードディレクトリとあまり関係はありません
- ひとつの仮想環境が複数のソースコードディレクトリへのアクセスができます
- ひとつのソースコードディレクトリで複数の仮想環境に共有することが出来ます
- なので、ソースコードのディレクトリが仮想環境に入れる必要はありません
Python仮想環境で必要なパッケージのインストールも必要
- Pythonのルートでインストールしたパッケージが仮想環境に影響しません
- 例:Pyhoneのルートにdjangoパッケージをインストールして、仮想環境(test_1)にはインストールしていないので、djangoを使用時に「パッケージが見つからない」エラーが発生します
(test_1) C:\develop\source\python\test_1\test_1>python manage.py migrate Traceback (most recent call last): File "manage.py", line 8, in <module> from django.core.management import execute_from_command_line ModuleNotFoundError: No module named 'django' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "manage.py", line 14, in <module> ) from exc ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
-
仮想環境でもう一度djangoをインストールして、再度上記コマンドを実行すれば、エラーがなく正常に動作されます