Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Python パッケージの影響を歴史から理解してみよう!

Avatar for note35 note35
October 07, 2025

Python パッケージの影響を歴史から理解してみよう!

Python パッケージングの歴史について、いつも疑問に思ったことはありませんか?pip や poetry などのツールが誕生した背景を学び、これらを採用する前に大手テック企業がどのようにパッケージングを行っていたのかを発見しましょう。

Avatar for note35

note35

October 07, 2025
Tweet

More Decks by note35

Other Decks in Technology

Transcript

  1. ⾃⼰紹介 • Kir Chou • PyConの発表経験 • PyCon JP 2019

    発表 • PyCon TW 2017, 2018, 2019 発表 • その他 • ソフトウェアエンジニア @ アマゾンジャパン 2 @k1rch0u kir.chou note35
  2. 今⽇の献⽴ • 動機 • Python パッケージの歴史 • 歴史から学ぶこと • コミュニティが

    Python パッケージを解決する前の挑戦 • コミュニティが Python パッケージを解決した後の挑戦 • まとめ • Python パッケージの歴史に関する資料 3
  3. 13

  4. RFC822 14 1991 2005 2003 Python 1.0 Python 2.0 2000

    PEP241 PEP345 PEP314 disu9ls (egg) setuptools 2006 easy_install PEP405 tox virtualenv 20072008 2011 PyPI
  5. 19

  6. 20 1991 2011 Python 1.0 2008 Python 3.0 RFC822 PEP566

    PEP459 PEP426 PEP427,440 PEP376 2005 2003 Python 2.0 2000 PEP241 PEP345 PEP314 disu9ls (egg) setuptools 2006 wheel easy_install bento/twine PyPI pip PEP405 tox virtualenv 2007 PEP394 PEP582 poetry pipenv 2012 2017 PyPI warehouse PEP262
  7. 27

  8. 36 1991 Python 1.0 wheel PyPI Hosting pipenv poetry パターンは世代ごとに繰り返されます

    2008 Python 3.0 tox Python 2.0 2000 disutils (egg) setuptools PyPI virtualenv bento/twine easy_install (egg) pip
  9. 歴史の中で同じ問題を解決する • ビルドツール • 依存関係リゾルバー • 複数Pythonバージョンのサポート • 公開ツール /

    パッケージレジストリ • インストーラー / デプロイツール • 仮想環境のサポート • 複数OSのサポート 40
  10. 43

  11. パッケージングの問題は ほとんどが⼀般的です • ビルドツール • Python パケージングは? • Python パケージング依存関係はどでしょうか?

    • Python パッケージをビルドする⽅法は? • 公開ツール / パッケージレジストリ • Python パッケージを公開する⽅法は? • 他のPythonの依存関係をダウンロードする⽅法は? • インストーラー / デプロイツール • Python 環境を分離する⽅法は?(仮想環境) • Python パッケージはどのプOSをサポートしていますか? 45
  12. 49

  13. 50 クラウドサービス のビジネス クラウドサービス のプロバイダー 開発者 コミュニティ 協賛 お⾦を払う 新しいソリューション

    を提供する 新しいソリューションを採⽤する ワン・フォー・オール オール・フォー・ワン
  14. 52

  15. 53

  16. 歴史 • Dustin Ingram @ SciPy 2018 Inside the Cheeseshop:

    How Python Packaging Works • History of packaging written by Martijn Faassen • Kenneth Reitz @ PyCon 2018 Pipenv: The Future of Python Dependency Management • Clinton Roy @ Kiwi PyCon X (2019) The Packaging Lifecycle with Poetry • History of wheel written by Daniel Holth 57
  17. パッケージ • Dave Forgac @ PyOhio 2015 Python Packaging from

    Init to Deploy • Elana Hashman @ PyCon 2019 The Black Magic of Python Wheel • Official Document: Packaging binary extensions (2013) 58
  18. デプロイ(仮想環境) • Carl Meyer @ PyCon 2011 Reverse-engineering Ian Bicking's

    brain: inside pip and virtualenv • Bernat Gabor @ EuroPython 2019 Status quo of virtual environments 59