Pipenvの概要
チームメンバーと開発環境を共有しようとしたら、環境の不一致でトラブルになったことはありませんか?Pipenvは、Python開発の効率を大幅に高めるためのツールです。仮想環境の作成とパッケージ管理を一元化することで、プロジェクトの依存関係を明確かつ簡単に管理できるようになります。
Pythonプロジェクトでは、ライブラリのバージョンが異なるため、プロジェクト間での依存関係の衝突が問題となることがあります。Pipenvはこの問題を解決し、プロジェクト固有の仮想環境を作成して必要なパッケージをインストールします。これにより、開発者は依存関係の管理に煩わされることなく、各プロジェクトに必要なパッケージのバージョンを正確に維持できます。
また、Pipenvは Pipfile
と Pipfile.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 を使用すると、プロジェクトごとに独立した仮想環境を簡単に作成し、管理することができます。これはプロジェクトの依存関係を整理し、異なるプロジェクト間でのパッケージの衝突を避けるのに役立ちます。
-
プロジェクトディレクトリの作成
新しいプロジェクトを始めるには、まずプロジェクト用のディレクトリを作成します。例えば、
myproject
という名前のディレクトリを作成するには、以下のコマンドを使用します。mkdir myproject cd myproject
-
仮想環境の作成
プロジェクトディレクトリ内で、以下のコマンドを実行して pipenv の仮想環境を作成します。
pipenv install
このコマンドは、現在のプロジェクトに対して新しい仮想環境を作成し、プロジェクトの依存関係を管理するための
Pipfile
を自動的に生成します。 -
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 の基本的な使い方について説明します。
-
仮想環境の作成
プロジェクトディレクトリ内で以下のコマンドを実行することで、pipenv は自動的に仮想環境を作成します。もしプロジェクトディレクトリがまだない場合は、新しくディレクトリを作成してからコマンドを実行してください。
cd /path/to/project pipenv install
-
パッケージのインストール
プロジェクトに必要なパッケージをインストールするには、
pipenv install
コマンドに続けてパッケージ名を指定します。pipenv install requests
このコマンドは、
requests
パッケージを仮想環境にインストールし、プロジェクトの依存関係をPipfile
に追加します。 -
開発用パッケージのインストール
開発中にのみ必要なパッケージ(例:lintツールやテストフレームワーク)は、
--dev
オプションを付けてインストールします。pipenv install pytest --dev
-
仮想環境のアクティベート
pipenv で作成された仮想環境をアクティベート(有効化)するには、以下のコマンドを使用します。
pipenv shell
このコマンドにより、仮想環境がアクティベートされ、その環境内で Python や他のコマンドを実行できるようになります。
-
仮想環境の終了
仮想環境を終了し、通常のシェル環境に戻るには、
exit
コマンドを実行します。exit
-
パッケージのアンインストール
プロジェクトから特定のパッケージを削除するには、
pipenv uninstall
コマンドを使用します。pipenv uninstall requests
-
Pipfile
とPipfile.lock
Pipfile
はプロジェクトの依存関係を宣言的に記述するファイルです。Pipfile.lock
は、プロジェクトの依存関係の具体的なバージョンを含むロックファイルで、環境を一貫性があり再現可能にします。
-
依存関係のロック
プロジェクトの依存関係を
Pipfile.lock
にロック(固定)し、他の環境で正確に再現するには、以下のコマンドを使用します。pipenv lock
これらは pipenv を使用する上での基本的な操作です。pipenv を使用することで、プロジェクトの依存関係管理と仮想環境の管理が簡単になり、Python プロジェクトの開発効率が大きく向上します。
pipenv の応用的な使い方
pipenv は、基本的な依存関係管理と仮想環境の作成を超えて、さまざまな応用的な機能を提供します。これらの機能を利用することで、開発プロセスをさらに効率化し、プロジェクトの品質を向上させることができます。
-
特定のPythonバージョンの指定
プロジェクトで使用するPythonのバージョンを
Pipfile
で指定することができます。これにより、チーム内でのPythonのバージョンの統一が保証されます。[requires] python_version = "3.8"
-
開発環境と本番環境の分離
pipenv install --dev
を使用してインストールした開発用のパッケージは、本番環境にはインストールされません。これにより、開発環境と本番環境を効果的に分離できます。 -
スクリプトの実行
Pipfile
にスクリプトを定義し、pipenv run
コマンドを使用してそれらのスクリプトを実行することができます。これにより、複雑なコマンドを簡単に実行できるようになります。[scripts] test = "pytest"
実行方法は次の通り。
pipenv run test
-
パッケージのセキュリティチェック
pipenv check
コマンドを使用して、プロジェクトの依存関係に脆弱性がないかをチェックできます。これにより、セキュリティリスクを早期に発見し、対処することができます。pipenv check
-
グラフの表示
pipenv graph
コマンドを使用して、プロジェクトの依存関係のグラフを表示できます。これにより、パッケージ間の関係を視覚的に理解することができます。pipenv graph
-
本番環境でのパッケージインストール
pipenv install --ignore-pipfile
を使用することで、Pipfile.lock
に基づいてパッケージをインストールし、開発環境と完全に同じ環境を本番環境に作成することができます。Pipfile.lock
に基づいて依存関係をインストールすることで、開発環境と本番環境の間で一貫性を保つために特に有用です。pipenv install --ignore-pipfile
以上の通り、pipenv をフルに活用することで、Python プロジェクトの開発・管理・デプロイメントをより効率的に行うことができます。
この記事で学んだこと
この記事を通して、Pipenvを使用したPythonプロジェクトの効率的な管理方法について学びました。Pipenvを活用することで、次のような効果が得られます。
-
仮想環境の自動作成と管理
- プロジェクトごとに独立した仮想環境を簡単に作成し、依存関係をプロジェクト内に閉じ込められます。
-
依存関係の明確な管理
Pipfile
とPipfile.lock
により、プロジェクトの依存関係を明確にし、再現性のあるビルドが可能になります。
-
開発環境と本番環境の分離
- 開発時のみ必要なパッケージと本番環境で必要なパッケージを明確に分けられます。
-
セキュリティチェックと依存関係の可視化
- プロジェクトのセキュリティを確認し、パッケージ間の関係を視覚的に理解できます。
Pipenvを使いこなすことで、Pythonプロジェクトの開発がシンプルで効率的になり、チーム内での共同作業もスムーズに行えるようになります。また、新しいメンバーの参加やさまざまな環境への移行も容易になります。
参考資料
Pipenvについてさらに詳しく学びたい方は、以下のリソースをご覧ください。
- Pipenv: Python Development Workflow for Humans
- 公式ドキュメント。Pipenvの使用方法や機能について詳しく解説しています。 https://pipenv.pypa.io/en/latest/
【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。
「フリーランスエンジニア」
近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。
「成功する人とそうでない人の違いは何か?」
私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。
比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。
多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。
関連記事
2020.02.25
完全未経験からエンジニアを目指す爆速勉強法
USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
- キャリア・学習法
- エンジニア
2024.04.29
超初心者向け!プログラミングの基礎を30分で身につける
「副業できたらな」「リモートで仕事したいな」と考えたことはありませんか?スキル次第では実現可能です。とりあえず、プログラミングスキルを身につけると、次のようなメリットがあります。
- Python
- プログラミング
2024.03.18
Pythonのライブラリを簡単に管理するpoetryとは?
この記事では Python を用いてプログラミングを行う際にプロジェクトを便利に管理するパッケージマネージャー及び仮想環境管理ツールである Poetry について解説します。
- Python