Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python仮想環境の基本:venv・virtualenvによる環境構築と依存関係管理の完全ガイド

はじめに

開発者は、Python標準ライブラリに含まれていないモジュールやパッケージを使用する必要があるプロジェクトに、頻繁に直面します。こうしたパッケージは、特定のアプリケーション専用であることが少なくありません。

例えば、マシンには最新バージョンのPython(仮にPython 3.6とします)がインストールされているのに、あるプロジェクトでは特定のバージョン(Python 2.7)が求められるケースを考えてみましょう。この場合、新しいパッケージだけでなく、すでにインストール済みのアプリケーションに対しても特定バージョンの要求が発生します。すると要件同士が衝突し、2.7と3.6のどちらか一方をインストールすると、もう一方のアプリケーションが動作しなくなってしまいます。

このような問題を解決する有効な手段の一つが、プロジェクトごとの仮想環境(virtual environment)の作成です。virtualenvは、互いに分離されたPython環境を構築できるツールで、Pythonプロジェクトが必要とするパッケージを実行するための実行ファイル一式を含む、自己完結型のフォルダを生成します。

なぜ仮想環境が必要なのか?

virtualenv(仮想環境ツール)を使用する主な目的は、依存関係の競合パッケージのバージョン問題、そして間接的には権限の問題を解決することにあります。プロジェクトごとに独立した環境を持つことで、他のプロジェクトへの影響を心配せずにパッケージを自由にインストール・アップグレードできます。

仮想環境をインストールするための要件

まず大前提として、マシンにPythonがインストールされていること(必ずしも最新版である必要はありません)、およびpipパッケージマネージャーが必要です。ただし、Python 3.4以降を使用している場合は、pipが標準ライブラリとしてデフォルトで同梱されています。いずれかが不足している場合は、先にインストールしておきましょう。

仮想環境の作成手順

コマンドプロンプトを開き(「ファイル名を指定して実行」に cmd と入力)、仮想環境を作成したいディレクトリへ移動します。

Python 3.xを使用していない場合は、まずpipでvirtualenvツールをインストールする必要があります。

Shell

pip install virtualenv

すでにvirtualenvがインストールされている場合(Python 3系を使用している、またはインストール済みに気づいていない場合など)、上記コマンドを実行すると次のようなメッセージが表示されます。

>pip install virtualenv
Requirement already satisfied: virtualenv in c:\python\python361\lib\site-packages (15.1.0)

まず、作業用の新しいフォルダを作成しましょう。

Shell

mkdir python-virtual-environments && cd python-virtual-environments

コマンド実行後、新しく作成したフォルダ内に移動しています。次に、そのディレクトリ内に新しい仮想環境を作成します。

# Python 2.xの場合 −

virtualenv myenv

# Python 3.xの場合 −

python -m venv myenv

上記のコマンドを実行すると、myenv という名前の新しいフォルダが生成され、複数のディレクトリと多数のファイルが含まれます。ディレクトリ構造はおおよそ次のようになります。

├── Include
│ ├── abstract.h
│ ├── accu.h
│ ├── asdl.h
│ ├── ast.h
│ ├── bitset.h
……
├── Lib
│ ├── __future__.py
│ ├── __pycache__
│ ├── _bootlocale.py
│ ├── _collections_abc.py
│ ├── _dummy_thread.py
│ ├── _weakrefset.py
│ ├── abc.py
│ ├── base64.py
│ ├── bisect.py
│ ├── codecs.py
……
├── pip-selfcheck.json
├── Scripts
│ ├── activate
│ ├── activate.bat
│ ├── activate.ps1
│ ├── activate_this.py
│ ├── deactivate.bat
│ ├── easy_install.exe
│ ├── easy_install-3.6.exe
│ ├── pip.exe
│ ├── pip3.6.exe
│ ├── pip3.exe
│ ├── python.exe
│ ├── python36.dll
│ ├── pythonw.exe
│ └── wheel.exe

各ディレクトリの役割は以下の通りです。

  • Include(ディレクトリ): PythonパッケージをコンパイルするためのCヘッダーファイル群

  • Scripts(ディレクトリ): 仮想環境とやり取りするためのファイル群(activateスクリプトやpipなど)

  • Lib(ディレクトリ): Python本体のコピーと、依存パッケージがインストールされる site-packages ディレクトリを含む

仮想環境を有効化(アクティベート)する方法

Scriptsディレクトリの中でも特に重要なのが activate スクリプトです。このスクリプトは、シェルのセットアップ時に、その環境専用のPython実行ファイルとsite-packagesを優先的に使用するよう設定します。

仮想環境「myenv」のパッケージやリソースを分離して利用するには、まず環境を「有効化」する必要があります。OSに応じて、以下のコマンドを実行してください。

Windowsの場合:

myenv\Scripts\activate

macOS / Linuxの場合:

source myenv/bin/activate

仮想環境が有効になると、プロンプトに (myenv) と表示され、外部環境から完全に分離された状態で、プロジェクトに関連するパッケージや依存ライブラリを自由にインストールできるようになります。

例えば、データサイエンスプロジェクトに取り組んでいる場合は、以下のようにコマンドを1行入力するだけで、必要なパッケージとその依存関係をまとめてインストールできます。

(myenv) C:\Users\rajesh\python-virtual-environments>pip install numpy scipy matplotlib ipython jupyter pandas

プロジェクトの作業が完了したら、deactivate コマンドを実行するだけで、仮想環境から抜け出すことができます。

(myenv) C:\Users\rajesh\python-virtual-environments>deactivate
C:\Users\rajesh\python-virtual-environments>

これで、通常のWindowsコマンドシェルの状態に戻りました。このように、仮想環境を活用すれば、プロジェクトごとに独立したPython環境を簡単に構築・管理でき、バージョンや依存関係の衝突を効果的に回避できます。

  1. 【初心者向け】Pythonのissuperset()メソッドの使い方をわかりやすく解説

    はじめにこの記事では、Pythonのissuperset()メソッドについて、基本的な仕組みから実際のコード例まで詳しく解説します。issuperset()は、セット(集合)に対して使用できるメソッドで、引数として渡されたセットのすべての要素が、呼び出し元のセットに含まれているかどうかを判定します。呼び出し元のセットBが、引数のセットAのすべての要素を含んでいる場合 → True を返すセットAの要素がすべてBに含まれていない場合 → False を返すつまり、「BがAの上位集合(スーパーセット)であるかどうか」を判定するためのメソッドです。基本構文B.issuperset(A)この式は、Bが

  2. PythonのAnaconda環境にパッケージを追加する3つの方法【Navigator・conda・pip】

    既存のAnaconda環境にパッケージを追加する方法はいくつかあります。この記事では、代表的な3つの方法をわかりやすく解説します。 方法1:Anaconda Navigatorを使ってインストールする 最も一般的なアプローチのひとつが、GUIツール「Anaconda Navigator」を使う方法です。「Anaconda Navigator」を起動すると、ホーム画面は以下のような表示になります。 Homeタブの下にある「Environments」タブに移動すると、現在インストールされているパッケージと、まだ入っていないパッケージを確認できます。 Anaconda Navigatorからの