【2025年度版】Django 開発のための Python 環境構築ガイド 〜pyenv+venv+VSCode 編〜

に公開

この記事でわかること

  • ✅ Ubuntu での Django インストール
  • ✅ プロジェクト毎に異なる Python バージョンを管理
  • ✅ パッケージをプロジェクト毎にインストール

以前 Django で Web アプリを個人開発した際、早く公開したかったので、Python の一般的な方法というよりかは、速さ優先、自分でできる方法優先で進めました。その結果、後々のバージョン管理や環境の再現性で苦労することに...😓

今回はその反省を活かし、Python でよくやられているであろう開発環境構築について調べて構築したので、自分も忘れないようにメモとして残します。 📝

開発マシンの環境

  • OS: Ubuntu 24.04.2
  • PC: 自作 PC

構築内容

  • pyenv(Python バージョン管理)
  • venv(仮想環境)
  • Django 5.2(LTS)
  • flake8(リンター)
  • Black(コード整形)

構築手順

1. pyenv のインストール

https://github.com/pyenv/pyenv

インストールの前に、まずは以下を実行します。

sudo apt update
sudo apt install build-essential libbz2-dev libdb-dev \
  libreadline-dev libffi-dev libgdbm-dev liblzma-dev \
  libncursesw5-dev libsqlite3-dev libssl-dev \
  zlib1g-dev uuid-dev tk-dev
参考:

pyenv のインストール

curl -fsSL https://pyenv.run | bash

.bashrc に追記

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init - bash)"' >> ~/.bashrc
詳しくはこちら:

設定反映(またはターミナルを開き直す)

source ~/.bashrc

2. pyenv で python をインストール

pyenv install 3

バージョンを確認すると、

$ pyenv versions
system
3.13.3

このように追加されたバージョンが表示されます。今回の例では 3.13.3

プロジェクトに特定バージョンの Python を適用

プロジェクトのディレクトリで以下を実行します。

pyenv local 3.13.3

.python-version ファイルが作成されます。nodenv.node-version 的なファイル

3. venv で仮想環境を作成

https://docs.python.org/ja/3.13/library/venv.html

プロジェクトのディレクトリで以下を実行します。

python -m venv venv

プロジェクトルート配下に venv ディレクトリが作成されます。

VSCode だと仮想環境を自動で認識してくれます。

4. Django のインストール

https://www.djangoproject.com/

公式の通りにインストール

python -m pip install Django==5.2

プロジェクトを作成

プロジェクトのディレクトリで以下のようにしました。

django-admin startproject sample-project .

開発サーバの起動

python manage.py runserver

以下の URL にアクセスできれば OK です!

Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

5. flake8 のインストールと設定

https://flake8.pycqa.org/en/latest/

公式の通りにインストール

python -m pip install flake8

設定ファイルの作成

プロジェクト直下に .flake8 を作成して、以下のようにしました。

.flake8
[flake8]
extend-ignore = E203
exclude = .git,__pycache__,docs/source/conf.py,old,build,dist
max-complexity = 10
max-line-length = 88

6. Black のインストール

https://black.readthedocs.io/en/stable/index.html

pip install black

7. requirements.txt の作成(任意)

pip freeze > requirements.txt

必須ではないですが、別の端末とかで新たに環境を構築する時に

pip install -r requirements.txt

とすれば、パッケージを一括でインストールできます。

8. VSCode の設定(任意)

これも必須ではないですが、以下のようにしました。

settings.json
{
  "[python]": {
    "editor.defaultFormatter": "ms-python.black-formatter",
    "editor.formatOnSave": true,
  },
  "black-formatter.args": [
    "--skip-string-normalization"
  ]
}
  • ms-python.black-formatter は以下の拡張機能を入れました。この時点ではプレビュー版

https://marketplace.visualstudio.com/items/?itemName=ms-python.black-formatter

  • "editor.formatOnSave": true" でファイル保存時に、コード整形実行
  • "black-formatter.args""--skip-string-normalization" は、文字列を囲うシングルクォーテーションを維持

これで以上です。お疲れ様でした! 🎉

最後にやってみての感想

Node.js の開発をメインでやっているのですが、Node モジュールの管理や Node バージョンの切り替えをしているので、Python でも同じようにしたかったので色々調べて実施しました。Cody も使えました。
今回色々調べていてわかったんですが、Python では、タブスペースは「4」推奨 なんですねぇ。
https://peps.python.org/pep-0008/#indentation
ずっと「2」でやってきたので少し設定できるか色々やったんですが、うまくいかなかったのでやめました。Black も自動でタブスペースは「4」にされます。
思ったより時間かかったので疲れましたが、どなたかの参考になれば幸いです!

参考にしたサイト

ありがとうございます! 🙏

https://dev.classmethod.jp/articles/vscode_black_flake8/
https://qiita.com/ysti/items/94964eb5d5925b510826

Discussion