PyCon APAC 2023

Pythonでのパッケージング:エコシステムの理解と現場での活用
2023-10-27 , track 2

Pythonはその使いやすさと豊富なライブラリにより、ウェブ開発から機械学習まで多岐にわたる分野で活用されています。これらを可能にしているパッケージングエコシステムですが、Pythonの歴史が長く複雑なため、初心者に取って躓きやすいと感じます。

本発表では、Pythonのパッケージングエコシステムの全体像を説明し、その背景を理解することで、日常の開発で遭遇するパッケージ管理の問題に対応するための基本的な知識を提供します。

まず、Pythonパッケージの作成から配布、依存関係管理、ビルドなどの各要素の役割を解説します。さらに、Pythonのパッケージング管理における難しいポイント、そして、現在のパッケージ管理のベストプラクティスを一例として挙げ、包括的な全体像と現場での具体的な応用をリンクさせます。この情報を踏まえ、目的に沿った最適なパッケージングを行える知識を提供します。


セッションのアウトライン

  1. パッケージングエコシステムの基本要素
    • 標準と規格(PEPなど)
    • パッケージの配布(PyPIなど)
    • ランタイムバージョン管理(pyenvなど)
    • パッケージバージョンと依存関係の管理(pip, poetryなど)
    • ビルドとインストールのプロセス(setuptools, wheelなど)
  2. Pythonのパッケージングエコシステムを複雑化する要因
    • PEPの適用とその時間的な課題
    • 高度な要求を持つライブラリ(MLライブラリなど)
    • 多様化するツール群とその後方互換性の問題
  3. Pythonのパッケージングエコシステムの歴史的進化
    • 初期のパッケージ管理
    • PyPIとpipの発展
    • wheel形式の導入
    • 依存関係の解決の強化
    • 初期のパッケージ管理
    • Pythonのパッケージングの現状と課題
  4. Pythonパッケージングのベストプラクティスとケーススタディ
    • ケースバイケースでのツール選択の例
    • pyenv, pip, conda, poetryなどの各ツール適切な組み合わせ方
  5. 実際の問題とその解決策
    • pipとcondaを両方使わない方が良いと言われている理由
    • 特殊なインストールプロセスのあるライブラリ(例:pytorch)
  • 樋口 心(Higuchi Kokoro)
  • 1997年01月13日生まれ

筑波大学大学院で医療画像の自動セグメンテーションの研究に従事した後、2021年4月にWantedly株式会社に入社。データサイエンティストとして推薦システムの設計・開発・評価、グロース施策の分析業務などを担当しています。

GitHub: https://github.com/zerebom
Twitter: https://twitter.com/zerebom_3