SlideShare a Scribd company logo
Submit Search
Upload
eggとはなんだったのか 栄光のsetuptools
Report
Share
Atsushi Odagiri
open collector
Follow
•
1 like
•
685 views
1
of
27
eggとはなんだったのか 栄光のsetuptools
•
1 like
•
685 views
Report
Share
Download Now
Download to read offline
Technology
Python 2 EOL Party in Tokyo
Read more
Atsushi Odagiri
open collector
Follow
Recommended
みんなのPython勉強会#77 パッケージングしよう by
みんなのPython勉強会#77 パッケージングしよう
Atsushi Odagiri
1.8K views
•
46 slides
Pythonとパッケージングと私 by
Pythonとパッケージングと私
Atsushi Odagiri
19K views
•
41 slides
PYTHON PACKAGING (PyFes 2012.03 発表資料) by
PYTHON PACKAGING (PyFes 2012.03 発表資料)
Takayuki Shimizukawa
1.6K views
•
46 slides
Easy caching and logging package using annotation in Python by
Easy caching and logging package using annotation in Python
Yasunori Horikoshi
388 views
•
23 slides
パッケージングの今 by
パッケージングの今
Atsushi Odagiri
22.6K views
•
31 slides
パッケージングの呼び声 Python Charity Talks in Japan 2021.02 by
パッケージングの呼び声 Python Charity Talks in Japan 2021.02
Atsushi Odagiri
4.5K views
•
32 slides
More Related Content
What's hot
Distutil setuptools distribute by
Distutil setuptools distribute
Atsushi Odagiri
1.9K views
•
25 slides
Pycon2014 django performance by
Pycon2014 django performance
hirokiky
12.4K views
•
59 slides
Puppet入門 by
Puppet入門
Tomita Akiyoshi
2.1K views
•
41 slides
ひのきのぼうだけで全クリ目指す by
ひのきのぼうだけで全クリ目指す
AromaBlack
1.5K views
•
35 slides
パッケージングの今と未来 by
パッケージングの今と未来
Atsushi Odagiri
6.8K views
•
42 slides
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド by
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
Etsuji Nakai
16.1K views
•
25 slides
What's hot
(20)
Distutil setuptools distribute by Atsushi Odagiri
Distutil setuptools distribute
Atsushi Odagiri
•
1.9K views
Pycon2014 django performance by hirokiky
Pycon2014 django performance
hirokiky
•
12.4K views
Puppet入門 by Tomita Akiyoshi
Puppet入門
Tomita Akiyoshi
•
2.1K views
ひのきのぼうだけで全クリ目指す by AromaBlack
ひのきのぼうだけで全クリ目指す
AromaBlack
•
1.5K views
パッケージングの今と未来 by Atsushi Odagiri
パッケージングの今と未来
Atsushi Odagiri
•
6.8K views
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド by Etsuji Nakai
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
Etsuji Nakai
•
16.1K views
debexpo(mentors.d.n)をハックするには by kenhys
debexpo(mentors.d.n)をハックするには
kenhys
•
224 views
Python入門 by Shohei Okada
Python入門
Shohei Okada
•
11.5K views
パッケージングを支える技術 pyconjp2016 by Atsushi Odagiri
パッケージングを支える技術 pyconjp2016
Atsushi Odagiri
•
4.4K views
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12 by Takanori Suzuki
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
Takanori Suzuki
•
3K views
実"戦"CakePHP Plugin by Kenichirou Oyama
実"戦"CakePHP Plugin
Kenichirou Oyama
•
4.6K views
python-twitterを用いたTwitterデータ収集 by Hikaru Takemura
python-twitterを用いたTwitterデータ収集
Hikaru Takemura
•
68.8K views
Ansible 2.8 アップデート情報 -機能追加と注意点- by akira6592
Ansible 2.8 アップデート情報 -機能追加と注意点-
akira6592
•
17.2K views
Puppetのススメ by Gosuke Miyashita
Puppetのススメ
Gosuke Miyashita
•
22.8K views
Ansible2.9 ネットワーク対応のアップデート #ansiblejp by akira6592
Ansible2.9 ネットワーク対応のアップデート #ansiblejp
akira6592
•
9.7K views
2日間Fabricを触った俺が 色々解説してみる by airtoxin Ishii
2日間Fabricを触った俺が 色々解説してみる
airtoxin Ishii
•
4.4K views
Fabricでサーバー管理をDRYにしよう by max747
Fabricでサーバー管理をDRYにしよう
max747
•
10.7K views
Cakephp勉強会@tokyo #4 by ichikaway
Cakephp勉強会@tokyo #4
ichikaway
•
1.1K views
Python開発環境三種の神器 by Yukitaka Uchikoshi
Python開発環境三種の神器
Yukitaka Uchikoshi
•
1.9K views
Ansible ではじめる ネットワーク自動化(Ansible 2.9版) by akira6592
Ansible ではじめる ネットワーク自動化(Ansible 2.9版)
akira6592
•
2.4K views
Similar to eggとはなんだったのか 栄光のsetuptools
書こう! 使おう! 単体テスト by
書こう! 使おう! 単体テスト
ryohji ikebe
199 views
•
32 slides
書こう! 使おう! 単体テスト by
書こう! 使おう! 単体テスト
ryohji ikebe
330 views
•
32 slides
Visual studio de debug by
Visual studio de debug
Kazushi Kamegawa
5.4K views
•
35 slides
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築 by
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
Hideharu MATSUFUJI
2.3K views
•
45 slides
はじめてのCodeIgniter by
はじめてのCodeIgniter
Yuya Matsushima
6.4K views
•
65 slides
環境構築自動化ツールのご紹介 by
環境構築自動化ツールのご紹介
Etsuji Nakai
2.7K views
•
23 slides
Similar to eggとはなんだったのか 栄光のsetuptools
(20)
書こう! 使おう! 単体テスト by ryohji ikebe
書こう! 使おう! 単体テスト
ryohji ikebe
•
199 views
書こう! 使おう! 単体テスト by ryohji ikebe
書こう! 使おう! 単体テスト
ryohji ikebe
•
330 views
Visual studio de debug by Kazushi Kamegawa
Visual studio de debug
Kazushi Kamegawa
•
5.4K views
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築 by Hideharu MATSUFUJI
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
Hideharu MATSUFUJI
•
2.3K views
はじめてのCodeIgniter by Yuya Matsushima
はじめてのCodeIgniter
Yuya Matsushima
•
6.4K views
環境構築自動化ツールのご紹介 by Etsuji Nakai
環境構築自動化ツールのご紹介
Etsuji Nakai
•
2.7K views
Cent osにpyhtonをインストールしてみよう by 2bo 2bo
Cent osにpyhtonをインストールしてみよう
2bo 2bo
•
4.1K views
Jubatus: Jubakitでもっと楽をしよう by Tetsuya Shioda
Jubatus: Jubakitでもっと楽をしよう
Tetsuya Shioda
•
310 views
Jubakitの解説 by JubatusOfficial
Jubakitの解説
JubatusOfficial
•
10.3K views
Code igniterでテスト駆動開発 資料作成中 by Takako Miyagawa
Code igniterでテスト駆動開発 資料作成中
Takako Miyagawa
•
4K views
できる!KickstartとAnsible! by Wataru NOGUCHI
できる!KickstartとAnsible!
Wataru NOGUCHI
•
4.2K views
Personal Cloud Automation by Etsuji Nakai
Personal Cloud Automation
Etsuji Nakai
•
2.6K views
Pythonでの開発を効率的に進めるためのツール設定 by Atsushi Odagiri
Pythonでの開発を効率的に進めるためのツール設定
Atsushi Odagiri
•
46.7K views
PyQtではじめるGUIプログラミング by Ransui Iso
PyQtではじめるGUIプログラミング
Ransui Iso
•
309.7K views
勉強会 環境構築編 by gikuko gikuko
勉強会 環境構築編
gikuko gikuko
•
319 views
Perlワンライナーで全てのモジュールにuse v5.8.0つける! by debug-ito
Perlワンライナーで全てのモジュールにuse v5.8.0つける!
debug-ito
•
647 views
Scoop! by NipponAlgorithm
Scoop!
NipponAlgorithm
•
550 views
ネットワークエンジニアのための Puppet / Chef by npsg
ネットワークエンジニアのための Puppet / Chef
npsg
•
8.1K views
【de:code 2020】 監視と管理を自動化するサンプル Center of Excellence Starter Kit 概説 by 日本マイクロソフト株式会社
【de:code 2020】 監視と管理を自動化するサンプル Center of Excellence Starter Kit 概説
日本マイクロソフト株式会社
•
661 views
クックパッドのスケーリング by Satoshi Takada
クックパッドのスケーリング
Satoshi Takada
•
1.9K views
More from Atsushi Odagiri
async/await の向こう側 PyCon Kyushu 2022 by
async/await の向こう側 PyCon Kyushu 2022
Atsushi Odagiri
263 views
•
51 slides
pyconjp 2019 LT 今日のsetuptools by
pyconjp 2019 LT 今日のsetuptools
Atsushi Odagiri
5.9K views
•
18 slides
Python3 移行への軌跡 by
Python3 移行への軌跡
Atsushi Odagiri
3.3K views
•
13 slides
Sqlalchemy sqlの錬金術 by
Sqlalchemy sqlの錬金術
Atsushi Odagiri
2.6K views
•
31 slides
Clack meetup #1 lt by
Clack meetup #1 lt
Atsushi Odagiri
1.1K views
•
13 slides
Pyramid入門 by
Pyramid入門
Atsushi Odagiri
13.7K views
•
54 slides
More from Atsushi Odagiri
(20)
async/await の向こう側 PyCon Kyushu 2022 by Atsushi Odagiri
async/await の向こう側 PyCon Kyushu 2022
Atsushi Odagiri
•
263 views
pyconjp 2019 LT 今日のsetuptools by Atsushi Odagiri
pyconjp 2019 LT 今日のsetuptools
Atsushi Odagiri
•
5.9K views
Python3 移行への軌跡 by Atsushi Odagiri
Python3 移行への軌跡
Atsushi Odagiri
•
3.3K views
Sqlalchemy sqlの錬金術 by Atsushi Odagiri
Sqlalchemy sqlの錬金術
Atsushi Odagiri
•
2.6K views
Clack meetup #1 lt by Atsushi Odagiri
Clack meetup #1 lt
Atsushi Odagiri
•
1.1K views
Pyramid入門 by Atsushi Odagiri
Pyramid入門
Atsushi Odagiri
•
13.7K views
Bplt11 form alchemy by Atsushi Odagiri
Bplt11 form alchemy
Atsushi Odagiri
•
10.8K views
Python3でwebアプリ by Atsushi Odagiri
Python3でwebアプリ
Atsushi Odagiri
•
5.7K views
Pyconjp2012 memory-of-europython by Atsushi Odagiri
Pyconjp2012 memory-of-europython
Atsushi Odagiri
•
974 views
What makes pyramid unique by Atsushi Odagiri
What makes pyramid unique
Atsushi Odagiri
•
3.6K views
エキPy lt repoze.whoの紹介 by Atsushi Odagiri
エキPy lt repoze.whoの紹介
Atsushi Odagiri
•
1.2K views
World plonedaylt by Atsushi Odagiri
World plonedaylt
Atsushi Odagiri
•
1.2K views
Setup.pysetup.cfg by Atsushi Odagiri
Setup.pysetup.cfg
Atsushi Odagiri
•
1K views
BPStudy#54 そろそろPython3 by Atsushi Odagiri
BPStudy#54 そろそろPython3
Atsushi Odagiri
•
3.7K views
Form libraries by Atsushi Odagiri
Form libraries
Atsushi Odagiri
•
1.6K views
フレームワークなしでWSGIプログラミング by Atsushi Odagiri
フレームワークなしでWSGIプログラミング
Atsushi Odagiri
•
1.3K views
Form libraries by Atsushi Odagiri
Form libraries
Atsushi Odagiri
•
1.7K views
Aodag scaffold by Atsushi Odagiri
Aodag scaffold
Atsushi Odagiri
•
849 views
Nose 鼻をきかせてテストせよ by Atsushi Odagiri
Nose 鼻をきかせてテストせよ
Atsushi Odagiri
•
1.6K views
Json rpc 2_0 by Atsushi Odagiri
Json rpc 2_0
Atsushi Odagiri
•
3K views
Recently uploaded
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
129 views
•
42 slides
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
23 views
•
38 slides
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Hitachi, Ltd. OSS Solution Center.
73 views
•
26 slides
The Things Stack説明資料 by The Things Industries by
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.
71 views
•
29 slides
Windows 11 information that can be used at the development site by
Windows 11 information that can be used at the development site
Atomu Hidaka
88 views
•
41 slides
定例会スライド_キャチs 公開用.pdf by
定例会スライド_キャチs 公開用.pdf
Keio Robotics Association
121 views
•
64 slides
Recently uploaded
(11)
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
•
129 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
•
23 views
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by Hitachi, Ltd. OSS Solution Center.
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Hitachi, Ltd. OSS Solution Center.
•
73 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.
•
71 views
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development site
Atomu Hidaka
•
88 views
定例会スライド_キャチs 公開用.pdf by Keio Robotics Association
定例会スライド_キャチs 公開用.pdf
Keio Robotics Association
•
121 views
光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない
Takuya Matsunaga
•
18 views
JJUG CCC.pptx by Kanta Sasaki
JJUG CCC.pptx
Kanta Sasaki
•
6 views
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdf
icebreaker4
•
353 views
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門
mkoda
•
376 views
IPsec VPNとSSL-VPNの違い by 富士通クラウドテクノロジーズ株式会社
IPsec VPNとSSL-VPNの違い
富士通クラウドテクノロジーズ株式会社
•
471 views
eggとはなんだったのか 栄光のsetuptools
1.
egg とはなんだったのか 栄光の
setuptools Python 2 EOL Party in Tokyo Atsushi Odagiri February 15, 2020
2.
Outline
3.
egg とはなんだったのか 栄光の
setuptools Agenda setuptools egg
4.
自己紹介 aodag Atsushi Odagiri Open Collector,
Inc.
5.
覚えているでしょうか? http://peak.telecommunity.com/
6.
ez_setup.py http: //peak.telecommunity.com/DevCenter/setuptools setup.py で直接使ったり import ez_setup ez_setup.use_setuptools() from
setuptools import setup コマンド実行したり $ sudo python ez_setup.py
7.
setuptools の構成 setuptools の配布物に含まれるもの setuptools
パッケージ pkg_resources パッケージ easy_install コマンド
8.
setuptools モジュール distutils を拡張する install
や build などの既存コマンドの拡張 install コマンド実行時に依存ライブラリをインストールする upload コマンドで cheeseshop にパッケージをアップロード setup.py 書くのにちょっと便利な関数 find_packages とか
9.
pkg_resources モジュール パッケージ管理のユーティリティ パッケージメタデータ (egg!)
の処理 entry_point などの取得 パッケージ以下のファイルリソースの取り扱い これが pkg_resources の名前の由来だと思う
10.
easy_install コマンド パッケージインストーラー cheeseshop からダウンロード egg
ディレクトリにインストール 依存ライブラリがあればそれもインストール multi-versioning 可能
11.
pip との関係 $ ez_setup.py $
easy_install pip $ pip install virtualenv $ virutalenv .venv $ .venv/bin/pip --version
12.
distribute を覚えていますか? setuptools がメンテされないのでフォークされた 0.6
~ 0.6.49 0.7.x は setuptools との合流用
13.
egg とはなんだったのか? setuptools によって持ち込まれたパッケージング関連の様々 なツールや規約 http: //peak.telecommunity.com/DevCenter/PythonEggs
14.
egg の中身 egg info egg
フォーマット egg ディレクトリ 名前空間パッケージ (pkg_resources.declare_namespace)
15.
egg_info metadata の拡張 entry_point.txt dependencies.txt
16.
egg フォーマットの作り方 $ python
setup.py bdist_egg
17.
egg フォーマットの中身 egg_info メタデータ python
パッケージ
18.
egg フォーマットについて ピュア python
の配布物でも python バージョン固定 バイナリ拡張を含む場合は便利だったかもしれない
19.
egg ディレクトリ site-packages 以下に
egg ごとのディレクトリを作る easy_install.pth に egg ディレクトリを登録する
20.
egg ディレクトリの効用 multi-version mode
バージョン違いのパッケージを site-packages にインストール可能 easy_install -m で easy_install.pth には egg を登録しない 状態 pkg_resources.requres で指定のバージョンの egg を import 可能にする
21.
名前空間パッケージ __import__('pkg_resources').declare_namespace(__name__)
22.
pip は egg
を使わないの? egg フォーマットの配布物をダウンロードすることはな かった sdist から egg_info を使って依存ライブラリを解決するため、 setuptools は必須だった デフォルトでは site-packages ディレクトリ以下で egg ディレ クトリ構成にしないようになっていた
23.
pip が sdist
をインストールするとき setup.py install no-dep とかつけてるはず setup.py bdist_egg egg を site-packages に展開 setup.py bdist_wheel wheel を site-packages に展開 pep517.build wheel を site-packages に展開
24.
egg の後継 1 wheel
フォーマット/PEP517 $ python -m pep517.build metadata 2.1 markdown 使える entry point は egg のままだよ!
25.
egg の後継 1 PEP420
Implicit Namespace Packages ごちゃごちゃやらずにただのディレクトリにすればよくね? virtualenv/venv で egg ディレクトリいらないよね プロジェクトごとに site-packages を切り替えるので multi-verjoning いらない pip は egg ディレクトリを使わずにフラットにインストール する
26.
setuptools はもう要らないのか? C 拡張を扱える 名前空間パッケージを扱える PEP517
に対応している
27.
さよなら python2 setuptools はまだ元気です