Poetryを使ってDjangoのプロジェクトを作成する方法について解説します。
前提条件
本手順では、現在使用しているPythonの環境にdjango
をインストールしない方法でプロジェクトを作成しています。
公式の手順とは若干手順が異なることに注意してください。
空のプロジェクトを作成する
まずは空のプロジェクトを作成します。poetry new
コマンドで自動で作成されるプロジェクトの構造とDjangoのプロジェクト構造は相性が悪いので、ここでは普通にmkdir
コマンドで空のプロジェクトを作成して、プロジェクト内に移動します。
$ mkdir demoapp
$ cd demoapp
ここではdemoapp
というプロジェクトを作成していますが、実際に作成するときは作成したいプロジェクトの名前で作成してください。
Poetryの初期化を行う
Poetryの初期化を行います。
ここでは必要最低限の設定にしていますが、必要に応じて設定を変更してください。
$ poetry init
This command will guide you through creating your pyproject.toml config.
Package name [demoapp]:
Version [0.1.0]:
Description []:
Author [Taro Yamada <taro.yamada@example.com>, n to skip]:
License []:
Compatible Python versions [^3.10]:
Would you like to define your main dependencies interactively? (yes/no) [yes] no
Would you like to define your development dependencies interactively? (yes/no) [yes] no
Generated file
[tool.poetry]
name = "demoapp"
version = "0.1.0"
description = ""
authors = ["Taro Yamada <taro.yamada@example.com>"]
[tool.poetry.dependencies]
python = "^3.10"
[tool.poetry.dev-dependencies]
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
Do you confirm generation? (yes/no) [yes] yes
この時点ではDjangoをインストールせず初期化のみ行っています。
これは単にコマンドの方が楽だからという理由だけですので、poetry init
コマンド実行時にdjangoをインストールしてもかまいません。
Djangoをインストールする
poetry initを
した際に対話的にdjango
をインストールした場合はこの手順を飛ばしてください。
poetry add
コマンドでdjango
をインストールします。
執筆時点では4.0.4
がインストールされました。
$ poetry add django
インストールするときは-D
オプションをつけずにインストールします。
Djangoプロジェクトを作成する
Djangoプロジェクトを作成します。
以下のdjango-admin startproject
コマンドでDjangoプロジェクトをカレントディレクトリに作成します。プロジェクト名は最初に作成したディレクトリ名と同じ名前(本手順ではdemoapp
)を指定します。
$ poetry run django-admin startproject demoapp .
コマンドを実行するときにdjango-admin
ではなくdjango-admin.py
とすると実行時に例外が発生する場合があります。
私の環境では[Errno 2] No such file or directory: b'/Users/taro/.cargo/bin/django-admin.py'
のようなエラーが出力されました(Rustインストール済みの環境です)。
これでDjangoプロジェクトが作成できました。
以降はpoetry run python manage.py
で各種コマンドを実行できるようになります。