Skip to content

Create Project From a Template#

yarn createnpm createと同様に、PDMはテンプレートからのプロジェクトの初期化や作成もサポートしています。テンプレートはpdm initの位置引数として、次のいずれかの形式で指定されます。

  • pdm init django - テンプレートhttps://github.com/pdm-project/template-djangoからプロジェクトを初期化します
  • pdm init https://github.com/frostming/pdm-template-django - Git URLからプロジェクトを初期化します。HTTPSとSSH URLの両方を使用できます。
  • pdm init django@v2 - 特定のブランチまたはタグをチェックアウトします。完全なGit URLもサポートしています。
  • pdm init/path/to/template - ローカルファイルシステムのテンプレートディレクトリからプロジェクトを初期化します。
  • pdm init minimal - 組み込みの"minimal"テンプレートで初期化します。これはpyproject.tomlだけを生成します。

pdm initはデフォルトの組み込みテンプレートを使用します。

プロジェクトは現在のディレクトリで初期化され、同じ名前の既存のファイルは上書きされます。-p <path>オプションを使用して、新しいパスにプロジェクトを作成することもできます。

Contribute a template#

テンプレート引数の最初の形式に従って、pdm init <name>https://github.com/pdm-project/template-<name>にあるテンプレートリポジトリを参照します。テンプレートを投稿するには、テンプレートリポジトリを作成し、所有権をpdm-project組織に転送するリクエストを確立します(これはリポジトリ設定ページの下部にあります)。組織の管理者はリクエストを確認し、後続のステップを完了します。転送が受け入れられると、あなたはリポジトリメンテナとして追加されます。

Requirements for a template#

テンプレートリポジトリは、PEP-621準拠のメタデータを持つpyproject.tomlファイルを含むpyprojectベースのプロジェクトである必要があります。その他の特別な構成ファイルは必要ありません。

Project name replacement#

初期化時に、テンプレート内のプロジェクト名が新規プロジェクトの名前に置換されます。これは、再帰的な全文検索および置換によって行われます。インポート名も同様に置換されます。インポート名は、英数字以外のすべての文字をアンダースコアおよび小文字に置換することによってプロジェクト名から導出されます。

たとえば、テンプレート内のプロジェクト名がfoo-projectで、bar-projectという名前の新しいプロジェクトを初期化する場合、次のように置換されます。

  • foo-project -> すべての.mdファイルと.rstファイルが含まれているbar-project
  • foo_project -> すべての.pyファイルが含まれているbar_project
  • foo_project -> ディレクトリ名がbar_project
  • foo_project.py -> ファイル名がbar_project.py

したがって、インポート名がプロジェクト名から派生していない場合は、名前の置換はサポートされません。

Use other project generators#

より強力なプロジェクトジェネレータを探している場合は、--cookiecutterオプションでcookiecutterを、--copierオプションでcopierを使用できます。

cookiecuttercopierを使用するには、それぞれインストールする必要があります。これを行うにはpdm self add <package>を実行します。これらを使用するには:

1
2
3
pdm init --cookiecutter gh:cjolowicz/cookiecutter-hypermodern-python
# or
pdm init --copier gh:pawamoy/copier-pdm --UNSAFE