Skip to content
PDM logo

紹介#

PDM は、最新の PEP 標準をサポートするモダンな Python パッケージおよび依存関係マネージャーとして説明されています。しかし、それは単なるパッケージマネージャーではありません。さまざまな側面で開発ワークフローを強化します。

特徴のハイライト#

  • 大規模なバイナリ配布物向けのシンプルで高速な依存関係解決ツール。
  • PEP 517 ビルドバックエンド。
  • PEP 621 プロジェクトメタデータ。
  • 柔軟で強力なプラグインシステム。
  • 多用途なユーザースクリプト。
  • indygreg's python-build-standalone を使用して Python をインストールします。
  • pnpm のようなオプトインの集中インストールキャッシュ。

インストール#

PDM をインストールするには Python 3.8 以上が必要です。Windows、Linux、macOS を含む複数のプラットフォームで動作します。

Note

プロジェクトをより低い Python バージョンで動作させることもできます。方法についてはこちらを参照してください。

推奨インストール方法#

PDM をインストールするには Python バージョン 3.8 以上が必要です。

Pip と同様に、PDM は PDM を分離された環境にインストールするインストールスクリプトを提供します。

1
curl -sSL https://pdm-project.org/install-pdm.py | python3 -
1
powershell -ExecutionPolicy ByPass -c "irm https://pdm-project.org/install-pdm.py | py -"

Note

Windows では、オプションの py ランチャーがインストールされていない場合(Microsoft ストアから Python をインストールした場合を含む)、pypython に置き換えてください。

セキュリティ上の理由から、install-pdm.py のチェックサムを確認する必要があります。 install-pdm.py.sha256 からダウンロードできます。

たとえば、Linux/Mac では次のようにします。

1
2
3
4
curl -sSLO https://pdm-project.org/install-pdm.py
curl -sSL https://pdm-project.org/install-pdm.py.sha256 | shasum -a 256 -c -
# インストーラーを実行します
python3 install-pdm.py [options]

インストーラーは PDM をユーザーサイトにインストールし、場所はシステムによって異なります。

  • Unix の場合は $HOME/.local/bin
  • MacOS の場合は $HOME/Library/Python/<version>/bin
  • Windows の場合は %APPDATA%\Python\Scripts

スクリプトに追加のオプションを渡して、PDM のインストール方法を制御できます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
usage: install-pdm.py [-h] [-v VERSION] [--prerelease] [--remove] [-p PATH] [-d DEP]

optional arguments:
  -h, --help            show this help message and exit
  -v VERSION, --version VERSION | envvar: PDM_VERSION
                        Specify the version to be installed, or HEAD to install from the main branch
  --prerelease | envvar: PDM_PRERELEASE    Allow prereleases to be installed
  --remove | envvar: PDM_REMOVE            Remove the PDM installation
  -p PATH, --path PATH | envvar: PDM_HOME  Specify the location to install PDM
  -d DEP, --dep DEP | envvar: PDM_DEPS     Specify additional dependencies, can be given multiple times

オプションをスクリプトの後に渡すか、環境変数の値を設定できます。

その他のインストール方法#

1
brew install pdm
1
2
scoop bucket add frostming https://github.com/frostming/scoop-frostming.git
scoop install pdm
1
uv tool install pdm
1
pipx install pdm

GitHub リポジトリのヘッドバージョンをインストールします。 システムに Git LFS がインストールされていることを確認してください。

1
pipx install git+https://github.com/pdm-project/pdm.git@main#egg=pdm

PDM をすべての機能でインストールするには次のようにします。

1
pipx install pdm[all]

詳細については、https://pypa.github.io/pipx/ を参照してください。

1
pip install --user pdm

asdf がインストールされていることを前提としています。

1
2
3
asdf plugin add pdm
asdf local pdm latest
asdf install pdm

Pyprojectx ラッパースクリプトをプロジェクトにコピーすることで、PDM を (npm スタイルの) 開発依存関係としてプロジェクト内にインストールできます。これにより、異なるプロジェクト/ブランチが異なる PDM バージョンを使用できるようになります。

新しいプロジェクトまたは既存のプロジェクトを初期化する には、プロジェクトフォルダーに移動して次のようにします。

1
2
curl -LO https://github.com/pyprojectx/pyprojectx/releases/latest/download/wrappers.zip && unzip wrappers.zip && rm -f wrappers.zip
./pw --add pdm
1
2
Invoke-WebRequest https://github.com/pyprojectx/pyprojectx/releases/latest/download/wrappers.zip -OutFile wrappers.zip; Expand-Archive -Path wrappers.zip -DestinationPath .; Remove-Item -Path wrappers.zip
.\pw --add pdm

この方法で pdm をインストールする場合、すべての pdm コマンドを pw ラッパーを通じて実行する必要があります。

1
./pw pdm install

PDM バージョンの更新#

1
pdm self update

アンインストール#

システムから PDM を削除する必要がある場合は、次のスクリプトを使用できます。

1
curl -sSL https://pdm-project.org/install-pdm.py | python3 - --remove
1
powershell -ExecutionPolicy ByPass -c "irm https://pdm-project.org/install-pdm.py | py - --remove"

Homebrew などのサードパーティのパッケージ管理ツールを使用して PDM をインストールした場合は、ツールのアンインストール方法を使用して PDM をアンインストールすることもできます。たとえば、brew uninstall pdm などです。

パッケージングステータス#

Packaging status

シェル補完#

PDM は Bash、Zsh、Fish、または Powershell 用の補完スクリプトの生成をサポートしています。各シェルの一般的な場所は次のとおりです。

1
2
pdm completion bash > /etc/bash_completion.d/pdm.bash-completion # ルート (sudo) が必要です。代替手段については次を参照してください。
pdm completion bash > ~/.bash_completion # ルート (sudo) は不要です。ユーザーアカウントにのみインストールされます。
1
2
# ~/.zfunc が fpath に追加されていることを確認し、compinit の前に追加します。
pdm completion zsh > ~/.zfunc/_pdm

Oh-My-Zsh:

1
2
mkdir $ZSH_CUSTOM/plugins/pdm
pdm completion zsh > $ZSH_CUSTOM/plugins/pdm/_pdm

次に、~/.zshrc で pdm プラグインが有効になっていることを確認します。

1
pdm completion fish > ~/.config/fish/completions/pdm.fish
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 補完スクリプトを保存するディレクトリを作成します。
mkdir $PROFILE\..\Completions
echo @'
Get-ChildItem "$PROFILE\..\Completions\" | ForEach-Object {
    . $_.FullName
}
'@ | Out-File -Append -Encoding utf8 $PROFILE
# スクリプトを生成します。
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
pdm completion powershell | Out-File -Encoding utf8 $PROFILE\..\Completions\pdm_completion.ps1

Virtualenv と PEP 582#

PDM は、仮想環境管理に加えて、オプトイン機能として PEP 582 の実験的サポートを提供しています。Python ステアリング カウンシルは PEP 582 を拒否しました が、PDM を使用してテストすることはできます。

2 つのモードの詳細については、仮想環境の使用 および PEP 582 の使用 に関する関連章を参照してください。

PDM エコシステム#

Awesome PDM は、素晴らしい PDM プラグインとリソースのキュレーションされたリストです。

スポンサー#