Poetryを使ってDjangoプロジェクトを作成する

Poetryを使ってDjangoプロジェクトを 作成する

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で各種コマンドを実行できるようになります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次