コードの互換性を高めるために非常に重要なトピックである、Pythonの仮想環境について説明しましょう。
よく知られているのは、「私のシステムでは動いたのに」という話です。
なぜコードの互換性の問題に直面するのでしょうか?
あるコードが開発者のシステムで動作するのはなぜでしょうか?答えはとても簡単で、開発者が持っているモジュールとコードの互換性があるからです。
では、なぜあなたのシステムで動かないのか?これも答えは簡単で、いくつかのモジュールがコードと互換性がないからです。
どういうことでしょう?モジュールがアップデートされると、それまで使えていた機能が使えなくなることがよくあるんだ。
このような場合、そのモジュールを別のシステムにインストールすると、同じモジュールであるにもかかわらず、アップデートされたバージョンでは与えられたコードを処理することができません。
例えば、Python OpenCVの既存機能の一部に特許が見つかり、次期バージョンでその機能のサポートが無効になった例があります。
この特許は現在では期限が切れており、GSoCの期間中に取り組まれたものです。
そこで、この問題を解決するために、Pythonの仮想環境を使っています。
この記事もチェック:PythonでAnacondaのインストール、開発環境構築をする方法
Pythonにおける仮想環境とは?
仮想環境とは、特定の目的のために最適化された環境を作るために構築する環境のことです。
プロジェクトに必要なモジュールをインストールし、プロジェクト専用に利用します。
これにより、環境は重くなく、軽量になります。
仮想環境の構築
今回はデータサイエンス用に設計された仮想環境をPythonで作ってみましょう。
1. 仮想環境モジュールのインストール
Python 3.3 のリリースで、仮想環境モジュール venv
が Python の標準ライブラリにデフォルトで追加されました。
そのため、仮想環境を利用するためにモジュールをインストールする必要はありません。
3.3 より前のバージョンの Python を使用している場合は、 virtualenv モジュールのインストールを検討する必要があります。
Anaconda はデフォルトで仮想環境を作成するパッケージと一緒にそのような環境を提供してくれますが、この記事では Python が提供するデフォルトの仮想環境モジュールで作業することにします。
2. 仮想環境の作成
Pythonで仮想環境を作成するには、簡単なコマンドを使います。
環境をインストールするディレクトリを指定するか、名前を指定するだけでカレントディレクトリにインストールされます。
# Windows ## python -m venv path o python -m venv D:Pyth-Grip estenv # macOS and Linux python3 -m venv testenv |
インストールが完了したら、仮想環境のアクティベーションに進みます。
3. 仮想環境の起動
以上の簡単なコマンドで、仮想環境を作成することができました。
この環境にアクセスすると、次のようなファイル構成になっています。
testenv |-Include
|-Lib
|-pyvenv.cfg
|-Scripts
|
このディレクトリの中の pyvenv.cfg
は、システム内の既存の Python のバージョンに基づいた、特定の環境のための設定です。
Scriptsディレクトリには、仮想環境を有効にするための
activate` コマンドが含まれています。
このディレクトリの外から、仮想環境を有効にするために必要な手順を説明します。
cd testenv # the name of your environment
cd Scripts
activate |
この一連のコマンドの後、環境名が ()
という丸括弧で囲まれているときに、環境がアクティブになることに気がつきます。
私の場合、コマンドプロンプトには、このようにアクティブになった環境が表示されます。
# Installing the required version of pandas pip install pandas==1.1.3
# Installing the latest version of scikit-learn pip install scikit-learn
|
4. 仮想環境のセットアップ
さて、これでデータサイエンスだけに使える自分だけの環境ができました。
しかし、ちょっと待ってください! まだ、必要なモジュールがインストールされていない、新しい環境です。
それでは、Pythonのモジュールをインストールしてみましょう。
deactivate |
このように、この仮想環境では必要なモジュールのバージョンをインストールすることができ、ベース環境をクリーンで軽量に保つことができます。
5. 環境の無効化
特定の環境での作業が終わり、別の環境を使いたい、あるいはベースとなる環境を使いたい場合、現在の仮想環境を終了させる方法を知っておくことが重要です。
これは1つの簡単なコマンドで行うことができます。
で、終了です!
まとめ
これで、あなたのプロジェクトと衝突しない特定の環境で作業することができるようになりました!
Pandas、Numpy、Psutil、Scipyなど、仮想環境にインストールして素晴らしい開発体験を提供する他のモジュールも自由にチェックしてみてください。