PyCon APAC 2023

Dev Containers時代のPython開発環境のあり方
2023-10-27 , track 3

環境の分離や、環境構築の自動化はここ数年で「当たり前」とされるようになりました。pipenv、poetry、hatchなど、これまでPythonのパッケージ管理ツールは標準であるvenvでの仮想化をベースにして開発されてきました。一方で、いろいろなツールが登場し、求められる知識も増えてきたため、難易度が高くなってきている気がします。

Dev Containersは1つの解となりうるものですが、この中で既存のツールをそのまま適用すると2重に仮想化を重ねた環境になってしまい、初心者には難しい環境になってしまいます。また、事実上のVSCode専用となってしまいます。

Pythonistaは古来よりも、標準化と、シンプル、多様な環境での互換性を重んじてきました。この発表では、さまざまな環境を考慮した最小限のミニマルなパッケージ管理方法について検討していきます。


  • Dev Containersの仕組み

    まずはDev Containersの動きや仕組みを見ていきます。Dev Containersは今までDockerや仮想PCで環境を作る時に大変だったことをいろいろ自動化してくれますし、環境のカスタマイズも簡単です。

    • Dev Containersがやってくれること、やってくれないこと

      ユーザー、権限、同期が遅くならないファイルシステムの構成、開発サーバーのポート解放、ssh/gitのアクセス、社内のプロキシの突破方法などを紹介していきます。

    • Python用のイメージ作成方法

      ここでは、Python固有の環境をゼロから作る方法を紹介していきます。ゼロからといってもメニューから選ぶだけで簡単です。カスタマイズ方法なども紹介していきます。

  • パッケージ管理ツールの動作

    ベースのDev Containersができあがったところで、さまざまなツールのインストールの動作の比較を通じて、既存のツールがDev Containersとコンフリクトしがちなポイントをまとめます。

  • pyproject.tomlを書く

    pyproject.tomlはPoetryで有名になりましたが、実はPEPでルール化されている標準的なデータフォーマットです。またこのファイルを使ったパッケージのインストールには外部ツールは不要です。pyproject.tomlをダイレクトに使ったミニマルなパッケージ管理の手法を探ります。

    環境をうまく作ることでコード保管やリアルタイムのチェックをしながらファイルの編集が行えるため、それを紹介していきます。

  • できあがったPython開発環境のレビュー

    Dev Containersを使った場合、使わなかった場合のそれぞれでうまくいくことを確認していきます。

エキスパートPythonプログラミングの翻訳者の1人。Sphinx-Users.jpのファウンダー。