はじめに
Python の仮想環境は、Python プロジェクトにおける依存関係を管理するための不可欠なツールです。これらは、システムのグローバルな Python インストールに影響を与えることなく、パッケージをインストールできる隔離された空間を作成します。この隔離により、同じパッケージの異なるバージョンを必要とする可能性のある、異なるプロジェクト間の競合を回避できます。
この実験(Lab)では、Python の仮想環境を作成、アクティブ化、および非アクティブ化する方法を学びます。これらのスキルは Python 開発者にとって基本であり、プロジェクトのクリーンで整理された、再現可能な開発環境を維持するのに役立ちます。
Python 仮想環境の理解と作成
まず、Python 仮想環境とは何か、そしてなぜ重要なのかを理解してから、実際に作成してみましょう。
Python 仮想環境とは?
Python 仮想環境は、隔離された Python インタープリターのインストールです。仮想環境をアクティブ化すると、インストールするパッケージは、システム全体の Python インストールではなく、その環境のプライベートディレクトリに配置されます。この隔離には、いくつかの利点があります。
- 異なるプロジェクトで同じパッケージの異なるバージョンを使用できます
- 必要なパッケージの正確なリストを他の人と簡単に共有できます
- システムの Python をクリーンで整理された状態に保つことができます
最初の仮想環境の作成
Python 3.3 以降には、仮想環境を作成するための推奨ツールである venv モジュールが含まれています。最初の仮想環境を作成してみましょう。
まず、プロジェクトディレクトリにいることを確認します。
mkdir -p ~/project/python_env_demo cd ~/project/python_env_demo次のコマンドを実行して、
myenvという名前の新しい仮想環境を作成します。sudo apt-get update sudo apt-get install python3.10-venv -y python3 -m venv myenv作成されたものを見てみましょう。
ls -la myenv次のような出力が表示されるはずです。
total 20 drwxrwxr-x 5 labex labex 4096 Sep 14 10:00 . drwxrwxr-x 3 labex labex 4096 Sep 14 10:00 .. drwxrwxr-x 2 labex labex 4096 Sep 14 10:00 bin drwxrwxr-x 2 labex labex 4096 Sep 14 10:00 include drwxrwxr-x 3 labex labex 4096 Sep 14 10:00 lib -rw-rw-r-- 1 labex labex 70 Sep 14 10:00 pyvenv.cfg
venv コマンドは、いくつかのサブディレクトリを持つ myenv というディレクトリを作成しました。最も重要なものは次のとおりです。
bin: Python インタープリター、pip、およびアクティベーションスクリプトが含まれていますlib: この環境にインストールされたパッケージが含まれていますpyvenv.cfg: 仮想環境の構成ファイル
これで、アクティブ化して使用できる Python 仮想環境が正常に作成されました。
Python 仮想環境のアクティブ化
仮想環境を作成したので、使用する前にアクティブ化する必要があります。アクティブ化すると、シェル(shell)の環境変数が変更され、システム全体の Python インストールではなく、仮想環境の Python インタープリターとパッケージが使用されるようになります。
仮想環境をアクティブ化する方法
プロジェクトディレクトリにいることを確認します。
cd ~/project/python_env_demo次のコマンドを実行して、仮想環境をアクティブ化します。
source myenv/bin/activateコマンドプロンプトが変更されたことに注目してください。プロンプトの先頭に、括弧で囲まれた仮想環境の名前が表示されるようになりました。
(myenv) labex:python_env_demo/ $この視覚的なインジケーターは、仮想環境内で作業していることを思い出させてくれます。
アクティブ化の確認
仮想環境がアクティブで正しく動作していることを確認するには、以下を確認できます。
どの Python インタープリターが使用されているか:
which python次のような出力が表示されるはずです。
/home/labex/project/python_env_demo/myenv/bin/pythonこれは、
pythonコマンドが、システム全体のものとは異なり、仮想環境内の Python インタープリターを指していることを示しています。どの pip (Python パッケージインストーラー) が使用されているか:
which pip次のような出力が表示されるはずです。
/home/labex/project/python_env_demo/myenv/bin/pipこれは、システム Python ではなく、仮想環境にパッケージをインストールすることを確認します。
Python のバージョンを確認します。
python --version出力には、仮想環境で使用されている Python のバージョンが表示されます。
これで、Python 仮想環境が正常にアクティブ化されました。実行する Python コマンドとインストールするパッケージは、システムの Python インストールではなく、この隔離された環境を使用します。
仮想環境へのパッケージのインストール
仮想環境の主な利点の 1 つは、システム全体の Python インストールから隔離された Python パッケージをインストールして管理できることです。アクティブ化された仮想環境にパッケージをインストールする方法を見てみましょう。
pip を使用したパッケージのインストール
仮想環境がまだアクティブ化されていることを確認します。コマンドプロンプトの先頭に
(myenv)が表示されるはずです。アクティブ化されていない場合は、次のようにしてアクティブ化します。source myenv/bin/activateHTTP リクエストの作成によく使用される
requestsという単純なパッケージをインストールしてみましょう。pip install requestsダウンロードとインストールのプロセスを示す出力が表示されます。
インストールされたパッケージのリストを確認して、パッケージがインストールされたことを確認します。
pip listリストに
requestsとその依存関係が表示されるはずです。Package Version ------------------ --------- certifi 2025.1.31 charset-normalizer 3.4.1 idna 3.10 pip 22.0.2 requests 2.32.3 setuptools 59.6.0 urllib3 2.3.0
インストールされたパッケージの使用
requests パッケージをテストする簡単な Python スクリプトを作成してみましょう。
エディターを開き、
~/project/python_env_demoディレクトリにtest_requests.pyという新しいファイルを作成します。import requests response = requests.get('https://httpbin.org/get') print(f"Status Code: {response.status_code}") print(f"Content Type: {response.headers['content-type']}") print("\nResponse Body Preview:") print(response.text[:300] + "...")ファイルを保存して実行します。
python test_requests.py
次のような出力が表示されるはずです。
Status Code: 200 Content Type: application/json Response Body Preview: { "args": {}, "headers": { "Accept": "_/_", "Accept-Encoding": "gzip, deflate", "Host": "httpbin.org", "User-Agent": "python-requests/2.32.3", "X-Amzn-Trace-Id": "Root=1-67ca4e9a-3b65928a0af016e74bc867b7" }, "origin": "47.251.8.222", "url": "https://httpbin.org/g...
これは、requests パッケージが仮想環境に正常にインストールされ、正しく動作していることを示しています。
Python 仮想環境の非アクティブ化
仮想環境での作業が完了したら、システムのグローバル Python 環境に戻りたい場合があります。このプロセスは非アクティブ化と呼ばれます。
仮想環境を非アクティブ化する方法
現在、仮想環境がアクティブ化されていることを確認します。コマンドプロンプトの先頭に
(myenv)が表示されるはずです。仮想環境を非アクティブ化するには、単に次を実行します。
deactivateコマンドプロンプトが通常の状態に戻ったことに注目してください。
(myenv)プレフィックスが消えました。labex:python_env_demo/ $
非アクティブ化の確認
仮想環境が非アクティブ化され、システムの Python の使用に戻ったことを確認するには、次のチェックを実行します。
どの Python インタープリターが使用されているかを確認します。
which python3次のような出力が表示されるはずです。
/usr/bin/python3これは、
python3コマンドが、システム全体の Python インタープリターを指していることを示しています。先ほど作成したスクリプトを実行してみます。
python3 test_requests.pyrequestsパッケージがシステムの Python にインストールされているかどうかによって、エラーが表示される場合があります。Traceback (most recent call last): File "/home/labex/project/python_env_demo/test_requests.py", line 1, in <module> import requests ModuleNotFoundError: No module named 'requests'このエラーは、
requestsパッケージがシステムの Python ではなく、仮想環境にインストールされたために発生します。これは、仮想環境の主な利点の 1 つであり、さまざまなプロジェクトのパッケージを分離します。
仮想環境の再アクティブ化
プロジェクトで再び作業する必要がある場合は、仮想環境を簡単に再アクティブ化できます。
source myenv/bin/activate
コマンドプロンプトには再び (myenv) が表示され、仮想環境がアクティブであることを示します。
一般的な仮想環境コマンドの概要
以下は、これまで説明したコマンドのクイックリファレンスです。
| コマンド | 説明 |
|---|---|
python3 -m venv myenv |
"myenv" という名前の新しい仮想環境を作成します。 |
source myenv/bin/activate |
仮想環境をアクティブ化します。 |
pip install package_name |
アクティブな仮想環境にパッケージをインストールします。 |
pip list |
アクティブな仮想環境にインストールされているパッケージを一覧表示します。 |
deactivate |
現在の仮想環境を非アクティブ化します。 |
これらのコマンドは、Python 仮想環境を操作するための基礎となり、プロジェクトの分離された Python 環境を作成、使用、および管理できます。
まとめ
この実験(Lab)では、Python 仮想環境を操作するための基本的なスキルを習得しました。
- 仮想環境の概念と利点の理解
venvモジュールを使用した新しい仮想環境の作成- Python の作業を分離するための仮想環境のアクティブ化
- pip を使用した仮想環境内でのパッケージのインストール
- 簡単な Python スクリプトを使用したインストール済みパッケージのテスト
- 作業が完了したときの仮想環境の非アクティブ化
これらのスキルは、優れた Python 開発プラクティスの基礎となります。仮想環境を使用することで、次のことが可能になります。
- プロジェクトの依存関係を互いに分離する
- さまざまなバージョンのパッケージ間の競合を回避する
- プロジェクトの再現性を高め、共有を容易にする
- クリーンで整理された Python 開発環境を維持する
仮想環境は、初心者からエキスパートまで、あらゆるレベルの Python 開発者にとって不可欠なツールです。Python の旅を続けるにつれて、仮想環境の使用は開発ワークフローの自然な一部となるでしょう。



