
Introduction#
PDMはPythonのパッケージと依存関係を管理する最新のPEP標準をサポートするマネージャーです。しかし、これは単なるパッケージマネージャではありません。さまざまな面で開発ワークフローを強化します。
Feature highlights#
- 主に大規模なバイナリ配布用の、シンプルで高速な依存関係のリゾルバ。
- PEP 517ビルドバックエンド。
- PEP 621プロジェクトメタデータ。
- 柔軟で強力なプラグイン方式です。
- 汎用性の高いユーザースクリプト。
- indygreg's python-build-standaloneを使用したPythonのインストール。
- pnpmのような集中インストールキャッシュ。
Installation#
PDMにはPython 3.8+がインストールされている必要があります。Windows、Linux、macOSなど複数のプラットフォームで動作します。
Note
プロジェクトを下位バージョンのPythonで動作させることもできます。その方法については、hereを参照してください。
Recommended installation method#
PDMにはPythonバージョン3.8以上が必要です。
Pipと同様に、PDMは、PDMを独立した環境にインストールするインストールスクリプトを提供します。
1 |
|
1 |
|
Note
Windowsでは、オプションのpy
ランチャーツールがインストールされていない場合(MicrosoftストアからPythonをインストールした場合を含む)、py
をpython
に置き換えてください。
セキュリティ上の理由から、install-pdm.py
のチェックサムを確認するべきです。
install-pdm.py.sha256からダウンロードできます。
たとえば、Linux/Macの場合は次のようになります。
1 2 3 4 |
|
インストーラはPDMをユーザーサイトにインストールします。インストール場所はシステムによって異なります。
$HOME/.local/bin
Unixの場合$HOME/Library/Python/<version>/bin
MacOSの場合%APPDATA%\Python\Scripts
Windowsの場合
スクリプトに追加のオプションを渡して、PDMのインストール方法を制御できます。
1 2 3 4 5 6 7 8 9 10 |
|
スクリプトの後にオプションを渡すか、env var値を設定します。
Other installation methods#
1 |
|
1 2 |
|
1 |
|
1 |
|
GitHubリポジトリのHEADバージョンをインストールします。システムにGit LFSがインストールされていることを確認します。
1 |
|
すべての機能を含むPDMをインストールするには、次の手順に従います:
1 |
|
See also: https://pypa.github.io/pipx/
1 |
|
asdfがインストールされていると仮定します。
1 2 3 |
|
Pyprojectxラッパースクリプトをプロジェクトにコピーすることで、そのプロジェクト内に(npmスタイルの)dev依存関係としてPDMをインストールできます。これにより、異なるプロジェクト/ブランチで異なるPDMバージョンを使用できます。
initialize a new or existing projectには、プロジェクトフォルダにcdして、次のようにします:
1 2 |
|
1 2 |
|
この方法でpdmをインストールする場合は、すべてのpdm
コマンドをpw
ラッパーを使用して実行する必要があります。:
1 |
|
Update the PDM version#
1 |
|
Packaging Status#
Shell Completion#
PDMは、Bash、Zsh、Fish、またはPowershellの補完スクリプトの生成をサポートしています。各シェルの一般的な場所を次に示します。
1 |
|
1 2 |
|
Oh-My-Zsh:
1 2 |
|
次に、pdmプラグインが~/.zshrcで有効になっていることを確認します。
1 |
|
1 2 3 4 5 6 7 8 9 10 |
|
Virtualenv and PEP 582#
PDMは、virtualenv管理に加えて、オプトイン機能としてPEP 582を実験的にサポートしています。the Python Steering Council has rejected PEP 582が、PDMを使用してテストすることはできます。
2つのモードの詳細については、Working with virtualenvおよびWorking with PEP 582の関連する章を参照してください。
PDM Eco-system#
Awesome PDM はPDMのすばらしいプラグインとリソースを集めたリストです。