12.12。 仮想環境とパッケージ
12.1。 序章
Pythonアプリケーションは、多くの場合、標準ライブラリの一部として提供されていないパッケージやモジュールを使用します。 アプリケーションは、特定のバグを修正する必要がある場合や、ライブラリのインターフェイスの廃止バージョンを使用してアプリケーションを作成する場合があるため、特定のバージョンのライブラリが必要になる場合があります。
これは、1つのPythonインストールですべてのアプリケーションの要件を満たすことができない場合があることを意味します。 アプリケーションAが特定のモジュールのバージョン1.0を必要としているが、アプリケーションBがバージョン2.0を必要としている場合、要件は矛盾しており、バージョン1.0または2.0のいずれかをインストールすると、1つのアプリケーションを実行できなくなります。
この問題の解決策は、仮想環境を作成することです。これは、特定のバージョンのPython用のPythonインストールと、いくつかの追加パッケージを含む自己完結型のディレクトリツリーです。
その後、さまざまなアプリケーションがさまざまな仮想環境を使用できます。 競合する要件の以前の例を解決するために、アプリケーションAにバージョン1.0の独自の仮想環境をインストールし、アプリケーションBにバージョン2.0の別の仮想環境をインストールすることができます。 アプリケーションBでライブラリをバージョン3.0にアップグレードする必要がある場合、これはアプリケーションAの環境には影響しません。
12.2。 仮想環境の作成
仮想環境の作成と管理に使用されるモジュールは、 venv と呼ばれます。 venv は通常、利用可能な最新バージョンのPythonをインストールします。 システムに複数のバージョンのPythonがある場合は、python3
または任意のバージョンを実行して、特定のPythonバージョンを選択できます。
仮想環境を作成するには、仮想環境を配置するディレクトリを決定し、 venv モジュールをディレクトリパスを使用してスクリプトとして実行します。
これにより、tutorial-env
ディレクトリが存在しない場合は作成され、Pythonインタープリターのコピー、標準ライブラリ、およびさまざまなサポートファイルを含むディレクトリも作成されます。
仮想環境の一般的なディレクトリの場所は.venv
です。 この名前は、ディレクトリが通常シェルに隠されているため、ディレクトリが存在する理由を説明する名前を付けながら、邪魔にならないようにします。 また、一部のツールがサポートする.env
環境変数定義ファイルとの衝突を防ぎます。
仮想環境を作成したら、それをアクティブ化できます。
Windowsでは、次を実行します。
UnixまたはMacOSでは、次のコマンドを実行します。
(このスクリプトはbashシェル用に書かれています。 csh または fish シェルを使用する場合は、代わりにactivate.csh
およびactivate.fish
スクリプトを使用する必要があります。)
仮想環境をアクティブ化すると、シェルのプロンプトが変更され、使用している仮想環境が表示されます。また、python
を実行すると、Pythonの特定のバージョンとインストールが取得されるように環境が変更されます。 例えば:
12.3。 pipを使用したパッケージの管理
pip というプログラムを使用して、パッケージをインストール、アップグレード、および削除できます。 デフォルトではpip
Python PackageIndexからパッケージをインストールします< https://pypi.org >。 WebブラウザでPythonPackage Indexにアクセスすると、Python PackageIndexを参照できます。
pip
には、「インストール」、「アンインストール」、「フリーズ」などのサブコマンドがいくつかあります。 (pip
の完全なドキュメントについては、 Pythonモジュールのインストールガイドを参照してください。)
パッケージの名前を指定することにより、パッケージの最新バージョンをインストールできます。
パッケージ名に続けて==
とバージョン番号を指定して、パッケージの特定のバージョンをインストールすることもできます。
このコマンドを再実行すると、pip
は、要求されたバージョンがすでにインストールされていることを認識し、何もしません。 別のバージョン番号を指定してそのバージョンを取得するか、pip install --upgrade
を実行してパッケージを最新バージョンにアップグレードできます。
pip uninstall
の後に1つ以上のパッケージ名が続くと、仮想環境からパッケージが削除されます。
pip show
は、特定のパッケージに関する情報を表示します。
pip list
は、仮想環境にインストールされているすべてのパッケージを表示します。
pip freeze
は、インストールされているパッケージの同様のリストを生成しますが、出力はpip install
が期待する形式を使用します。 一般的な規則は、このリストをrequirements.txt
ファイルに入れることです。
requirements.txt
は、バージョン管理にコミットして、アプリケーションの一部として出荷できます。 その後、ユーザーはinstall -r
を使用して必要なすべてのパッケージをインストールできます。
pip
にはさらに多くのオプションがあります。 pip
の完全なドキュメントについては、 Pythonモジュールのインストールガイドを参照してください。 パッケージを作成し、Python Package Indexで利用できるようにする場合は、 Python Modulesの配布ガイドを参照してください。