0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Pythonの開発環境構築

Last updated at Posted at 2022-10-11

はじめに

個人的なメモです。
更新していく予定です。

対象者

  • python の環境をdevcontainer を使って作りたい人

使用したマシンについて

  • macOS Monterey
  • MacBook Pro
  • Vscode ver 1.70.1

Pythonの開発環境を構築する

  1. ディレクトリ作成
  2. Dockerfile & devcontainer.json 作成
  3. poetry の追加, python 周辺の設定など

1.ディレクトリの作成

今回は, python-dev-template と言う名称でディレクトリを作成しました。
github にも残しておこうと思うので, リポジトリの作成も行いました。
作成後, リポジトリの初期案内に沿ってREADME を作成しただけのリポジトリです。

スクリーンショット 2022-10-11 22.10.38.png

2. Dockerfile & devcontainer.json 作成

Vscode の 拡張機能 devcontainer を使うため,Dockerfiledevcontainer.json を作成します。

.devcontainer ディレクトリを作成して ディレクトリ内に以下の内容でDockerfiledevcontainer.json を追加していきます.

Dockerfile
FROM python:3.11-slim-bullseye
RUN apt-get update && apt-get install -y \
    git
devcontainer.json
{
    "name": "Python 3.11 dev",
    "context": "..",
    "dockerFile": "Dockerfile",
    "customizations": {
        "vscode": {
            "settings": {
                "terminal.integrated.profiles.linux": {
                    "zsh": {
                        "path": "zsh"
                    }
                },
                "python.pythonPath": "/usr/local/bin/python"
            },
            "extensions": [
                "ms-python.python",
                "kevinrose.vsc-python-indent",
                "editorconfig.editorconfig"
            ]
        }
    }
}

ここで devcontainerを起動してコンテナ内に入れることを確認したら, コミットしておきます。

差分を追いやすいように, PR出しました。

https://github.com/syokoysn/python-dev-template/pull/1

3. poetry の追加, python 周辺の設定など

poetry を使えるようにするため, Dockerfile に変更を入れます.
まず poetry の追加です.
以下のようにDockerfileを書き換えて,devcontainer を再度 build しなおします。

Dockerfile
FROM python:3.11-slim-bullseye
RUN apt-get update && apt-get install -y \
    git

ENV PYTHONDONTWRITEBYTECODE 1 \
    PYTHONUNBUFFERED 1 \
    POETRY_VERSION=1.4.2

RUN apt-get update && apt-get install -y \
    git \
    curl 

RUN curl -sSL https://install.python-poetry.org | POETRY_HOME=/opt/poetry python3 - && \
    ln -s /opt/poetry/bin/poetry /usr/local/bin/poetry

立ち上げた後に,

poetry init 

とコマンドを打って,いくつかの質問に答えてpyproject.tomlを作成します。

pyproject.toml 内のpackagesの部分は使わないので削除します。
以下の一行を削除

pyproject.toml
packages = [{include = "python_dev_template"}]

気になる方は, 以下のリンクで確認してみてください。

次に開発時に使用するパッケージをインストールします。
ここでは, black と flake8をインストールしました。

poetry add --group dev black flake8

上記のコマンド入力後, poetry.lock が作成されているはずです。

pyproject.tomlpoetry.lock の二つのファイルができたので,
コンテナ立ち上げ時に 必要なパッケージをインストールするように, Dockerfile の更新も行います。
以下のように変更しました。

Dockerfile
FROM python:3.11-slim-bullseye
RUN apt-get update && apt-get install -y \
    git

ENV PYTHONDONTWRITEBYTECODE 1 \
    PYTHONUNBUFFERED 1 \
    POETRY_VERSION=1.4.2

RUN apt-get update && apt-get install -y \
    git \
    curl 

RUN curl -sSL https://install.python-poetry.org | POETRY_HOME=/opt/poetry python3 - && \
    ln -s /opt/poetry/bin/poetry /usr/local/bin/poetry

COPY pyproject.toml poetry.lock ./
RUN poetry config virtualenvs.create false \
    && poetry install

最後に, blackflake8のための設定を devcontainer に反映させるため変更をおこなっていきます。

devcontainer.jsonを以下のように変更します。

devcontainer.json
{
    "name": "Python 3.11 dev",
    "context": "..",
    "dockerFile": "Dockerfile",
    "customizations": {
        "vscode": {
            "settings": {
                "terminal.integrated.profiles.linux": {
                    "zsh": {
                        "path": "zsh"
                    }
                },
                "python.pythonPath": "/usr/local/bin/python",
                "python.linting.enabled": true,
                "python.linting.pylintEnabled": false,
                "python.linting.flake8Enabled": true,
                "python.linting.lintOnSave": true,
                "python.formatting.provider": "black",
                "editor.formatOnSave": true
            },
            "extensions": [
                "ms-python.python",
                "kevinrose.vsc-python-indent",
                "editorconfig.editorconfig"
            ]
        }
    }
}

ここまでできたら, 再度 build し直して動くこと確認してコミットします。
変更内容は, PRにしてわかりやすくしておきました。

https://github.com/syokoysn/python-dev-template/pull/2

pythonの開発環境の構築ができたのではないでしょうか.

この内容に加えて、拡張機能などを追加したりして自分好みにカスタマイズできると思いますので是非試してみてください。


参考

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?