Pipenv: 人間のためのPython開発ワークフロー

https://img.shields.io/pypi/v/pipenv.svghttps://img.shields.io/pypi/l/pipenv.svghttps://img.shields.io/pypi/pyversions/pipenv.svg

Pipenv は、全てのパッケージングの世界 (bundler、composer、npm、cargo、yarnなどなど。) における最高のものをPythonの世界にもたらすことを目的としたツールです。我々の世界ではWindowsは第一級市民です。

Pipenvは、手動でパッケージのインストールおよびアンインストールを行うのと同じようにPipfile に対してパッケージの追加および削除を行うのに加え、自動でプロジェクト用の仮想環境を作成し管理します。またPipenvは、いかなるときも重要なPipfile.lock を生成し、これを利用しビルドが常に同じ結果になるようにします。

Pipenvは主にアプリケーションのユーザーと開発者に、簡単に作業環境を作れる方法を提供するためのツールです。ライブラリとアプリケーションの違いや、依存関係を定義するためのsetup.pyPipfile の使い方の違いについては、☤ Pipfile vs setup.py を参照してください。

a short animation of pipenv at work

Pipenvは様々な側面を持つ問題を解決しようとしています:

  • もうpipvirtualenv を別々に使う必要はありません。両者は連係して動作します。
  • requirements.txt ファイルの管理は問題になり得る ので、代わりにPipenvはPipfile およびPipfile.lock を使い、最小限の依存関係の宣言と直前にテストした依存関係の組み合わせを区別します。
  • ハッシュがどこでもいつでも使われます。安心安全。そして、自動でセキュリティの脆弱性を白日の下に晒します。
  • 依存パッケージの最新バージョンを使うことで古いコンポーネントが引き起こす セキュリティリスクを最小化することを強くお薦めします。
  • 依存関係グラフを深く理解できるようになります (例えば$pipenvgraph)。
  • .env ファイルを読み込むことで、開発ワークフローの能率を上げます。

You can quickly play with Pipenv right in your browser:

Try in browser

さぁ今すぐこれからPipenvをインストール!

If you're on MacOS, you can install Pipenv easily with Homebrew. You can also use Linuxbrew on Linux using the same command:

$ brew install pipenv

あるいは、Fedora 28を使っている場合には次のようにします:

$ sudo dnf install pipenv

それ以外の場合は、☤ Pipenvのインストール の章の手順を参照してください。

✨🍰✨

ユーザーによる推薦文

David Gang
このパッケージマネージャーは本当に素晴しい。どんな依存関係があり、そのうちのどれが私がインストールしたもので、どれが推移的依存関係なのかを初めて認識できた。インストールが決定論的であることも相俟って、cargoのような一級品のパッケージマネージャーとなっている
Justin Myles Holmes
Pipenvは遂に、単なるファイルシステムとではなく思考と結び付くための抽象化を果たした。

☤ Pipenvの特徴

  • 何をしたいか を簡単に指定するだけで、真の決定論的ビルド が可能です。
  • 固定された依存関係のファイルハッシュを生成しチェックします。
  • pyenv が使える場合は、要求されているPythonを自動でインストールします。
  • Pipfile を探して、再帰的に、プロジェクトホームを自動で見付けに行きます。
  • Pipfile が存在していない場合、自動で生成します。
  • 標準的な場所に仮想環境を自動で作成します。
  • パッケージがインストールもしくはアンインストールされたときに、自動でPipfile に追加および削除します。
  • .env ファイルが存在する場合、自動で読み込みます。

主なコマンドはinstalluninstalllock で、lock コマンドはPipfile.lock を生成します。これらは、手動での仮想環境の管理 (仮想環境を有効にするための$pipenvshell の実行) だけでなく、$pipinstall の使用も置き換えるために作られています。

基本コンセプト

  • 既存の仮想環境が存在しないときは、自動で作成されます。
  • install にパラメータが何も渡されないときは、[packages] に指定された全てのパッケージがインストールされます。
  • Python 3の仮想環境を初期化するには、$pipenv--three を実行します。
  • Python 2の仮想環境を初期化するには、$pipenv--two を実行します。
  • それ以外は、virtualenvがデフォルトとしているものをPipenvのデフォルトとします。

他のコマンド

  • graph はインストールされた依存パッケージの依存関係グラフを表示します。
  • shell will spawn a shell with the virtualenv activated. This shell can be deactivated by usingexit.
  • run は、与えられたコマンドに任意の引数を付けて仮想環境で実行します(例えば$pipenvrunpython$pipenvrunpipfreeze)。
  • check はセキュリティの脆弱性をチェックし、現在の環境がPEP 508の要求仕様を満たしていることを表明します。

より進んだ内容のドキュメントガイド

索引と一覧表