Github: https://github.com/pypa/pipenv
Pipenv:人間のためのPython開発ワークフロー
Pipenv – 公式に推奨されているPython.orgの Pythonパッケージングツールです。自由です(自由のように)。
Pipenvは、すべてのパッケージングの世界(バンドル、作曲家、npm、貨物、糸など)の最高のものをPython世界にもたらすことを目指すツールです。 Windowsは、世界で一流の市民です。
パッケージのインストール/アンインストール時に、プロジェクトのvirtualenvを自動的に作成および管理したり、Pipfileからパッケージを追加/削除したりします。 これは、決定的なビルドを生成するために使用される重要なPipfile.lock
も生成します。
Pipenvが解決しようとする問題は多面的です。
- あなたはもはや
pip
とvirtualenv
別々に使う必要はありません。 彼らは一緒に働く。 -
requirements.txt
ファイルを管理することは問題がある可能性があるため、Pipenvは今後のPipfile
とPipfile.lock
代わりに使用します。これは基本的な使用例よりも優れています。 - ハッシュはいつでもどこでも使用されます。 セキュリティ。 セキュリティ上の脆弱性を自動的に公開します。
- あなたの依存グラフ(例えば、
$ pipenv graph
)を洞察してください。 -
.env
ファイルをロードして開発ワークフローを合理化します。
インストール
MacOSを使用しているなら、Homebrewで簡単にPipenvをインストールできます:
$ brew install pipenv
Ubuntu 17.10を使用している場合、
$ sudo apt install software-properties-common python-software-properties $ sudo add-apt-repository ppa:pypa/ppa $ sudo apt update $ sudo apt install pipenv
それ以外の場合は、pipを使用してください:
$ pip install pipenv
☤ユーザーの声
- Jannis Leidel 、元pipメンテナー –
- Pipenvは私がいつもpipのために作りたかった磁器です。 それは私の脳に合っていて、ほとんど私の代わりにvirtualenvwrapperと手作りピップを呼び出します。 これを使って。
- デビッド・ギャング –
- このパッケージマネージャーは本当に素晴らしいです。 初めて自分の依存関係がインストールされていることと推移的な依存関係が何であるかを正確に把握しています。 インストールが確定的であるという事実と相まって、このパッケージマネージャは貨物のようにファーストクラスになります。
- ジャスティン・マイズ・ホームズ –
- Pipenvはついにファイルシステムではなく心に関わる抽象である。
☤特長
- 真に確定的なビルドを可能にし 、 必要なものだけを簡単に指定できます 。
- ロックされた依存関係のファイルハッシュを生成してチェックします。
-
pyenv
が利用可能であれば、必要なPythonを自動的にインストールします。 -
Pipfile
検索することで、プロジェクトを自動的に再帰的に検索します。 - 存在しない場合、
Pipfile
自動的に生成します。 - 標準的な場所にvirtualenvを自動的に作成します。
-
Pipfile
がun /Pipfile
れているときにパッケージを自動的に追加/削除します。 - 存在する場合、
.env
ファイルを自動的にロードします。
主なコマンドはinstall
、 uninstall
、 lock
で、 Pipfile.lock
を生成しPipfile.lock
。 これらは、 $ pip install
使い方や、手動による仮想管理(virtualenvを有効にするため、 $ pipenv shell
実行する)の$ pipenv shell
。
基本概念
- virtualenvは、存在しないときに自動的に作成されます。
-
install
パラメータが渡されない場合、指定されたすべてのパッケージ[packages]
がインストールされます。 - Python 3仮想環境を初期化するには、
$ pipenv --three
実行します。 - Python 2仮想環境を初期化するには、
$ pipenv --two
実行します。 - それ以外の場合、virtualenvのデフォルト値はデフォルトです。
その他のコマンド
-
shell
はvirtualenvが有効になっているshell
を生成します。 -
run
は引数が転送された状態でvirtualenvから与えられたコマンドを実行します(例えば$ pipenv run python
)。 - PEP 508の要件が現在の環境で満たされていることを
check
ます。 -
graph
は、インストールされているすべての依存関係のグラフが表示されます。
シェル完了
例えば、魚の場合は~/.config/fish/completions/pipenv.fish
ます:
eval (pipenv --completion)
代わりに、bashを使用して、これを.bashrc
または.bash_profile
入れます:
eval "$(pipenv --completion)"
マジックシェルの補完機能が有効になりました! また、自動的にあなたのサブシェルを有効にする魚のプラグインがあります!
魚は最高の貝です。 あなたはそれを使うべきです。
☤使用法
$ pipenv Usage: pipenv [OPTIONS] COMMAND [ARGS]... Options: --where Output project home information. --venv Output virtualenv information. --py Output Python interpreter information. --envs Output Environment Variable options. --rm Remove the virtualenv. --bare Minimal output. --completion Output completion (to be eval'd). --man Display manpage. --three / --two Use Python 3/2 when creating virtualenv. --python TEXT Specify which version of Python virtualenv should use. --site-packages Enable site-packages for the virtualenv. --version Show the version and exit. -h, --help Show this message and exit. Usage Examples: Create a new project using Python 3.6, specifically: $ pipenv --python 3.6 Install all dependencies for a project (including dev): $ pipenv install --dev Create a lockfile containing pre-releases: $ pipenv lock --pre Show a graph of your installed dependencies: $ pipenv graph Check your installed dependencies for security vulnerabilities: $ pipenv check Install a local setup.py into your virtual environment/Pipfile: $ pipenv install -e . Use a lower-level pip command: $ pipenv run pip freeze Commands: check Checks for security vulnerabilities and against PEP 508 markers provided in Pipfile. clean Uninstalls all packages not specified in Pipfile.lock. graph Displays currently–installed dependency graph information. install Installs provided packages and adds them to Pipfile, or (if none is given), installs all packages. lock Generates Pipfile.lock. open View a given module in your editor. run Spawns a command installed into the virtualenv. shell Spawns a shell within the virtualenv. sync Installs all packages specified in Pipfile.lock. uninstall Un-installs a provided package and removes it from Pipfile.
プロジェクトを見つける:
$ pipenv --where /Users/kennethreitz/Library/Mobile Documents/com~apple~CloudDocs/repos/kr/pipenv/test
virtualenvを探します:
$ pipenv --venv /Users/kennethreitz/.local/share/virtualenvs/test-Skyy4vre
Pythonインタプリタを探します:
$ pipenv --py /Users/kennethreitz/.local/share/virtualenvs/test-Skyy4vre/bin/python
パッケージをインストールする:
$ pipenv install Creating a virtualenv for this project... ... No package provided, installing all dependencies. Virtualenv location: /Users/kennethreitz/.local/share/virtualenvs/test-EJkjoYts Installing dependencies from Pipfile.lock... ... To activate this project's virtualenv, run the following: $ pipenv shell
dev依存関係をインストールする:
$ pipenv install pytest --dev Installing pytest... ... Adding pytest to Pipfile's [dev-packages]...
依存グラフを表示する:
$ pipenv graph requests==2.18.4 - certifi [required: >=2017.4.17, installed: 2017.7.27.1] - chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4] - idna [required: >=2.5,<2.7, installed: 2.6] - urllib3 [required: <1.23,>=1.21.1, installed: 1.22]
ロックファイルを生成する:
$ pipenv lock Assuring all dependencies from Pipfile are installed... Locking [dev-packages] dependencies... Locking [packages] dependencies... Note: your project now has only default [packages] installed. To install [dev-packages], run: $ pipenv install --dev
すべてのdev依存関係をインストールする:
$ pipenv install --dev Pipfile found at /Users/kennethreitz/repos/kr/pip2/test/Pipfile. Considering this to be the project home. Pipfile.lock out of date, updating... Assuring all dependencies from Pipfile are installed... Locking [dev-packages] dependencies... Locking [packages] dependencies...
すべてをアンインストールする:
$ pipenv uninstall --all No package provided, un-installing all dependencies. Found 25 installed package(s), purging... ... Environment now purged and fresh!
シェルを使用する:
$ pipenv shell Loading .env environment variables… Launching subshell in virtual environment. Type 'exit' or 'Ctrl+D' to return. $ ▯
☤ドキュメンテーション
ドキュメントはpipenv.orgにあります。