【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 のインストール
インストールの前に、まずは以下を実行します。
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 で仮想環境を作成
プロジェクトのディレクトリで以下を実行します。
python -m venv venv
プロジェクトルート配下に venv
ディレクトリが作成されます。
VSCode だと仮想環境を自動で認識してくれます。
4. Django のインストール
公式の通りにインストール
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 のインストールと設定
公式の通りにインストール
python -m pip install 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 のインストール
pip install black
7. requirements.txt の作成(任意)
pip freeze > requirements.txt
必須ではないですが、別の端末とかで新たに環境を構築する時に
pip install -r requirements.txt
とすれば、パッケージを一括でインストールできます。
8. VSCode の設定(任意)
これも必須ではないですが、以下のようにしました。
{
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true,
},
"black-formatter.args": [
"--skip-string-normalization"
]
}
-
ms-python.black-formatter
は以下の拡張機能を入れました。この時点ではプレビュー版
-
"editor.formatOnSave": true"
でファイル保存時に、コード整形実行 -
"black-formatter.args"
の"--skip-string-normalization"
は、文字列を囲うシングルクォーテーションを維持
これで以上です。お疲れ様でした! 🎉
最後にやってみての感想
Node.js の開発をメインでやっているのですが、Node モジュールの管理や Node バージョンの切り替えをしているので、Python でも同じようにしたかったので色々調べて実施しました。Cody
も使えました。
今回色々調べていてわかったんですが、Python では、タブスペースは「4」推奨 なんですねぇ。
ずっと「2」でやってきたので少し設定できるか色々やったんですが、うまくいかなかったのでやめました。Black
も自動でタブスペースは「4」にされます。
思ったより時間かかったので疲れましたが、どなたかの参考になれば幸いです!
参考にしたサイト
ありがとうございます! 🙏
Discussion