1. ホーム
  2. 記事一覧
  3. 仮想環境とパッケージ管理をまとめて解決! pipenvの基本

2024.04.14

仮想環境とパッケージ管理をまとめて解決! pipenvの基本

Pipenvの概要

チームメンバーと開発環境を共有しようとしたら、環境の不一致でトラブルになったことはありませんか?Pipenvは、Python開発の効率を大幅に高めるためのツールです。仮想環境の作成とパッケージ管理を一元化することで、プロジェクトの依存関係を明確かつ簡単に管理できるようになります。

Pythonプロジェクトでは、ライブラリのバージョンが異なるため、プロジェクト間での依存関係の衝突が問題となることがあります。Pipenvはこの問題を解決し、プロジェクト固有の仮想環境を作成して必要なパッケージをインストールします。これにより、開発者は依存関係の管理に煩わされることなく、各プロジェクトに必要なパッケージのバージョンを正確に維持できます。

また、Pipenvは PipfilePipfile.lock を使ってプロジェクトの依存関係を管理します。これにより、チームメンバー間で開発環境を容易に共有できるようになります。さらに、シンプルで直感的なコマンド操作も特徴で、新しい開発者でも参加しやすくなります。Pipenvはプロジェクト管理の効率化と開発者の生産性向上を実現する、Python開発にとって重要なツールといえます。

pipenv のインストール

まずはインストールして使ってみましょう。以下に、インストールするために必要な手順を簡単に説明します。

必要な環境

pipenv をインストールする前に、Python が既にインストールされていることを確認してください。pipenv は Python 3.7 以上で動作しますが、最新の機能を利用するためには、可能な限り最新バージョンの Python を使用することをお勧めします。

python -V

インストール方法

pipenv は Python のパッケージマネージャである pip を通じて簡単にインストールできます。以下のコマンドをターミナルまたはコマンドプロンプトに入力してください。

pip install pipenv
# インストールされたかどうか、バージョンを確認
pipenv --version

このコマンドは、グローバルに pipenv をインストールします。プロジェクトごとに異なるバージョンの pipenv を使用したい場合は、Python の仮想環境を作成し、その環境内で pipenv をインストールしてください。

pipenv でのプロジェクト作成

pipenv をインストールした後、次のステップとして Python プロジェクトの作成と、それに伴う仮想環境の設定があります。pipenv を使用すると、プロジェクトごとに独立した仮想環境を簡単に作成し、管理することができます。これはプロジェクトの依存関係を整理し、異なるプロジェクト間でのパッケージの衝突を避けるのに役立ちます。

  1. プロジェクトディレクトリの作成

    新しいプロジェクトを始めるには、まずプロジェクト用のディレクトリを作成します。例えば、myproject という名前のディレクトリを作成するには、以下のコマンドを使用します。

    mkdir myproject
    cd myproject
  2. 仮想環境の作成

    プロジェクトディレクトリ内で、以下のコマンドを実行して pipenv の仮想環境を作成します。

    pipenv install

    このコマンドは、現在のプロジェクトに対して新しい仮想環境を作成し、プロジェクトの依存関係を管理するための Pipfile を自動的に生成します。

  3. Pipfile の確認

    pipenv install コマンドの実行後、プロジェクトディレクトリ内に Pipfile が作成されています。このファイルは、プロジェクトの依存関係を記述し、プロジェクトがどのパッケージに依存しているかをpipenv と他の開発者に伝えます。

以上の手順で、pipenv を使用した Python プロジェクトの作成と仮想環境の設定が完了します。これにより、プロジェクトの依存関係を効果的に管理し、開発プロセスをよりスムーズに進めることができます。

パス設定(必要な場合)

pipenv をインストールした後、システムの PATH に pipenv のインストールパスを追加する必要があるかもしれません。これは、どこからでも pipenv コマンドを実行できるようにするためです。多くの場合、pip は自動的に適切なパスを設定しますが、うまくいかない場合は、以下の手順に従ってください。

  • Windows

    pipenv がインストールされたパスを環境変数の PATH に追加します。これは通常、C:\Users\<ユーザー名>\AppData\Roaming\Python\Python<バージョン>\Scripts のようなパスです。

  • macOS/Linux

    ターミナルを開き、次のコマンドを実行して pipenv のインストールパスを確認します。

    pipenv --venv

    出力されたパスを、~/.bash_profile, ~/.zshrc, または使用しているシェルの設定ファイルに追加します。

    export PATH="$PATH:/path/to/pipenv"

    変更を有効にするためには、設定ファイルを再読み込みするか、新しいターミナルセッションを開始してください。

これで、pipenv のインストールは完了です。次のセクションでは、pipenv を使用して Python プロジェクトの仮想環境を作成し、依存関係を管理する基本的な方法について説明します。

pipenv の基本的な使い方

pipenv を使用すると、Python プロジェクトの依存関係管理と仮想環境の管理が簡単になります。ここでは、pipenv の基本的な使い方について説明します。

  1. 仮想環境の作成

    プロジェクトディレクトリ内で以下のコマンドを実行することで、pipenv は自動的に仮想環境を作成します。もしプロジェクトディレクトリがまだない場合は、新しくディレクトリを作成してからコマンドを実行してください。

    cd /path/to/project
    pipenv install
  2. パッケージのインストール

    プロジェクトに必要なパッケージをインストールするには、pipenv install コマンドに続けてパッケージ名を指定します。

    pipenv install requests

    このコマンドは、requests パッケージを仮想環境にインストールし、プロジェクトの依存関係をPipfileに追加します。

  3. 開発用パッケージのインストール

    開発中にのみ必要なパッケージ(例:lintツールやテストフレームワーク)は、--dev オプションを付けてインストールします。

    pipenv install pytest --dev
  4. 仮想環境のアクティベート

    pipenv で作成された仮想環境をアクティベート(有効化)するには、以下のコマンドを使用します。

    pipenv shell

    このコマンドにより、仮想環境がアクティベートされ、その環境内で Python や他のコマンドを実行できるようになります。

  5. 仮想環境の終了

    仮想環境を終了し、通常のシェル環境に戻るには、exit コマンドを実行します。

    exit
  6. パッケージのアンインストール

    プロジェクトから特定のパッケージを削除するには、pipenv uninstall コマンドを使用します。

    pipenv uninstall requests
  7. PipfilePipfile.lock

    • Pipfile はプロジェクトの依存関係を宣言的に記述するファイルです。
    • Pipfile.lock は、プロジェクトの依存関係の具体的なバージョンを含むロックファイルで、環境を一貫性があり再現可能にします。
  8. 依存関係のロック

    プロジェクトの依存関係をPipfile.lockにロック(固定)し、他の環境で正確に再現するには、以下のコマンドを使用します。

    pipenv lock

これらは pipenv を使用する上での基本的な操作です。pipenv を使用することで、プロジェクトの依存関係管理と仮想環境の管理が簡単になり、Python プロジェクトの開発効率が大きく向上します。

pipenv の応用的な使い方

pipenv は、基本的な依存関係管理と仮想環境の作成を超えて、さまざまな応用的な機能を提供します。これらの機能を利用することで、開発プロセスをさらに効率化し、プロジェクトの品質を向上させることができます。

  1. 特定のPythonバージョンの指定

    プロジェクトで使用するPythonのバージョンをPipfileで指定することができます。これにより、チーム内でのPythonのバージョンの統一が保証されます。

    [requires]
    python_version = "3.8"
  2. 開発環境と本番環境の分離

    pipenv install --devを使用してインストールした開発用のパッケージは、本番環境にはインストールされません。これにより、開発環境と本番環境を効果的に分離できます。

  3. スクリプトの実行

    Pipfileにスクリプトを定義し、pipenv runコマンドを使用してそれらのスクリプトを実行することができます。これにより、複雑なコマンドを簡単に実行できるようになります。

    [scripts]
    test = "pytest"

    実行方法は次の通り。

    pipenv run test
  4. パッケージのセキュリティチェック

    pipenv check コマンドを使用して、プロジェクトの依存関係に脆弱性がないかをチェックできます。これにより、セキュリティリスクを早期に発見し、対処することができます。

    pipenv check
  5. グラフの表示

    pipenv graph コマンドを使用して、プロジェクトの依存関係のグラフを表示できます。これにより、パッケージ間の関係を視覚的に理解することができます。

    pipenv graph
  6. 本番環境でのパッケージインストール

    pipenv install --ignore-pipfile を使用することで、Pipfile.lock に基づいてパッケージをインストールし、開発環境と完全に同じ環境を本番環境に作成することができます。Pipfile.lockに基づいて依存関係をインストールすることで、開発環境と本番環境の間で一貫性を保つために特に有用です。

    pipenv install --ignore-pipfile

以上の通り、pipenv をフルに活用することで、Python プロジェクトの開発・管理・デプロイメントをより効率的に行うことができます。

この記事で学んだこと

この記事を通して、Pipenvを使用したPythonプロジェクトの効率的な管理方法について学びました。Pipenvを活用することで、次のような効果が得られます。

  1. 仮想環境の自動作成と管理

    • プロジェクトごとに独立した仮想環境を簡単に作成し、依存関係をプロジェクト内に閉じ込められます。
  2. 依存関係の明確な管理

    • PipfilePipfile.lockにより、プロジェクトの依存関係を明確にし、再現性のあるビルドが可能になります。
  3. 開発環境と本番環境の分離

    • 開発時のみ必要なパッケージと本番環境で必要なパッケージを明確に分けられます。
  4. セキュリティチェックと依存関係の可視化

    • プロジェクトのセキュリティを確認し、パッケージ間の関係を視覚的に理解できます。

Pipenvを使いこなすことで、Pythonプロジェクトの開発がシンプルで効率的になり、チーム内での共同作業もスムーズに行えるようになります。また、新しいメンバーの参加やさまざまな環境への移行も容易になります。

参考資料

Pipenvについてさらに詳しく学びたい方は、以下のリソースをご覧ください。

  • Pipenv: Python Development Workflow for Humans

エンベーダー編集部

エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。

RareTECH 無料体験授業開催中! オンラインにて実施中! Top10%のエンジニアになる秘訣を伝授します! RareTECH講師への質疑応答可

関連記事