Enviar búsqueda
Cargar
パッケージングの今と未来
•
18 recomendaciones
•
12,209 vistas
Atsushi Odagiri
Seguir
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 49
Descargar ahora
Descargar para leer sin conexión
Recomendados
パッケージングの今
パッケージングの今
Atsushi Odagiri
Pythonとパッケージングと私
Pythonとパッケージングと私
Atsushi Odagiri
パッケージングの今と未来
パッケージングの今と未来
Atsushi Odagiri
PYTHON PACKAGING (PyFes 2012.03 発表資料)
PYTHON PACKAGING (PyFes 2012.03 発表資料)
Takayuki Shimizukawa
パッケージングの呼び声 Python Charity Talks in Japan 2021.02
パッケージングの呼び声 Python Charity Talks in Japan 2021.02
Atsushi Odagiri
みんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしよう
Atsushi Odagiri
Easy caching and logging package using annotation in Python
Easy caching and logging package using annotation in Python
Yasunori Horikoshi
eggとはなんだったのか 栄光のsetuptools
eggとはなんだったのか 栄光のsetuptools
Atsushi Odagiri
Recomendados
パッケージングの今
パッケージングの今
Atsushi Odagiri
Pythonとパッケージングと私
Pythonとパッケージングと私
Atsushi Odagiri
パッケージングの今と未来
パッケージングの今と未来
Atsushi Odagiri
PYTHON PACKAGING (PyFes 2012.03 発表資料)
PYTHON PACKAGING (PyFes 2012.03 発表資料)
Takayuki Shimizukawa
パッケージングの呼び声 Python Charity Talks in Japan 2021.02
パッケージングの呼び声 Python Charity Talks in Japan 2021.02
Atsushi Odagiri
みんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしよう
Atsushi Odagiri
Easy caching and logging package using annotation in Python
Easy caching and logging package using annotation in Python
Yasunori Horikoshi
eggとはなんだったのか 栄光のsetuptools
eggとはなんだったのか 栄光のsetuptools
Atsushi Odagiri
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
SaitoTsutomu
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
aoshiman
Pythonでゲーム作る
Pythonでゲーム作る
amusementcreators
パッケージングを支える技術 pyconjp2016
パッケージングを支える技術 pyconjp2016
Atsushi Odagiri
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
Ransui Iso
Git pyfes201207-presen
Git pyfes201207-presen
Kouhei Maeda
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
Yoshifumi Yamaguchi
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
Takanori Suzuki
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
Fumihito Yokoyama
wxPython入門(大阪Pythonユーザの集まり2014/03)
wxPython入門(大阪Pythonユーザの集まり2014/03)
泰 増田
XML-RPC : Pythonが「電池付属」と呼ばれる理由
XML-RPC : Pythonが「電池付属」と呼ばれる理由
Ransui Iso
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
Takanori Suzuki
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
dcubeio
Python twitterとtkinterのことはじめ
Python twitterとtkinterのことはじめ
Yukitaka Uchikoshi
Pynyumon03 LT
Pynyumon03 LT
drillan
Puppet入門
Puppet入門
Tomita Akiyoshi
Pythonでブラウザをいっぱい動かしたい
Pythonでブラウザをいっぱい動かしたい
Kameko Ohmura
第1回python勉強会
第1回python勉強会
Yoshio Shimomura
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
ryohji ikebe
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
ryohji ikebe
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
Yuya Unno
データ分析スクリプトのツール化入門 - PyConJP 2016
データ分析スクリプトのツール化入門 - PyConJP 2016
Akinori Kohno
Más contenido relacionado
La actualidad más candente
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
SaitoTsutomu
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
aoshiman
Pythonでゲーム作る
Pythonでゲーム作る
amusementcreators
パッケージングを支える技術 pyconjp2016
パッケージングを支える技術 pyconjp2016
Atsushi Odagiri
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
Ransui Iso
Git pyfes201207-presen
Git pyfes201207-presen
Kouhei Maeda
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
Yoshifumi Yamaguchi
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
Takanori Suzuki
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
Fumihito Yokoyama
wxPython入門(大阪Pythonユーザの集まり2014/03)
wxPython入門(大阪Pythonユーザの集まり2014/03)
泰 増田
XML-RPC : Pythonが「電池付属」と呼ばれる理由
XML-RPC : Pythonが「電池付属」と呼ばれる理由
Ransui Iso
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
Takanori Suzuki
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
dcubeio
Python twitterとtkinterのことはじめ
Python twitterとtkinterのことはじめ
Yukitaka Uchikoshi
Pynyumon03 LT
Pynyumon03 LT
drillan
Puppet入門
Puppet入門
Tomita Akiyoshi
Pythonでブラウザをいっぱい動かしたい
Pythonでブラウザをいっぱい動かしたい
Kameko Ohmura
第1回python勉強会
第1回python勉強会
Yoshio Shimomura
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
ryohji ikebe
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
ryohji ikebe
La actualidad más candente
(20)
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
Pythonでゲーム作る
Pythonでゲーム作る
パッケージングを支える技術 pyconjp2016
パッケージングを支える技術 pyconjp2016
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
Git pyfes201207-presen
Git pyfes201207-presen
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
wxPython入門(大阪Pythonユーザの集まり2014/03)
wxPython入門(大阪Pythonユーザの集まり2014/03)
XML-RPC : Pythonが「電池付属」と呼ばれる理由
XML-RPC : Pythonが「電池付属」と呼ばれる理由
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
Python twitterとtkinterのことはじめ
Python twitterとtkinterのことはじめ
Pynyumon03 LT
Pynyumon03 LT
Puppet入門
Puppet入門
Pythonでブラウザをいっぱい動かしたい
Pythonでブラウザをいっぱい動かしたい
第1回python勉強会
第1回python勉強会
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
Destacado
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
Yuya Unno
データ分析スクリプトのツール化入門 - PyConJP 2016
データ分析スクリプトのツール化入門 - PyConJP 2016
Akinori Kohno
Two sides of "Python Engineer Training Book"
Two sides of "Python Engineer Training Book"
Takanori Suzuki
ゴルフ
ゴルフ
Takesxi Sximada
Import community pycon jp
Import community pycon jp
FATEC São José dos Campos
IT勉強会カレンダーの楽しみ方(公開用)
IT勉強会カレンダーの楽しみ方(公開用)
rip jyr
Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016
Shinya Okano
S01 t2 akutsu_my_pythonhistory
S01 t2 akutsu_my_pythonhistory
Takeshi Akutsu
S01 t4 wrapup
S01 t4 wrapup
Takeshi Akutsu
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
Takeshi Komiya
Unite 16' LAで発表されたあれこれとゲームアプリのマネタイズベストプラクティス
Unite 16' LAで発表されたあれこれとゲームアプリのマネタイズベストプラクティス
Yasuyuki Kamata
S01 t3 data_engineer
S01 t3 data_engineer
Takeshi Akutsu
PyCon JP 2016 Talk#024 ja
PyCon JP 2016 Talk#024 ja
drillan
S01 t1 tsuji_pylearn_ut_01
S01 t1 tsuji_pylearn_ut_01
Takeshi Akutsu
S01 t0 orientation
S01 t0 orientation
Takeshi Akutsu
Pythonによる画像処理について
Pythonによる画像処理について
Yasutomo Kawanishi
Django learning Part2
Django learning Part2
Yusuke Muraoka
ビックデータとPythonではじめる野球の統計分析 #pyconjp
ビックデータとPythonではじめる野球の統計分析 #pyconjp
Shinichi Nakagawa
中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~
ProjectAsura
WebエンジニアとWebディレクターを兼任してわかった3つのこと
WebエンジニアとWebディレクターを兼任してわかった3つのこと
Satoshi Moriya
Destacado
(20)
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
データ分析スクリプトのツール化入門 - PyConJP 2016
データ分析スクリプトのツール化入門 - PyConJP 2016
Two sides of "Python Engineer Training Book"
Two sides of "Python Engineer Training Book"
ゴルフ
ゴルフ
Import community pycon jp
Import community pycon jp
IT勉強会カレンダーの楽しみ方(公開用)
IT勉強会カレンダーの楽しみ方(公開用)
Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016
S01 t2 akutsu_my_pythonhistory
S01 t2 akutsu_my_pythonhistory
S01 t4 wrapup
S01 t4 wrapup
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
Unite 16' LAで発表されたあれこれとゲームアプリのマネタイズベストプラクティス
Unite 16' LAで発表されたあれこれとゲームアプリのマネタイズベストプラクティス
S01 t3 data_engineer
S01 t3 data_engineer
PyCon JP 2016 Talk#024 ja
PyCon JP 2016 Talk#024 ja
S01 t1 tsuji_pylearn_ut_01
S01 t1 tsuji_pylearn_ut_01
S01 t0 orientation
S01 t0 orientation
Pythonによる画像処理について
Pythonによる画像処理について
Django learning Part2
Django learning Part2
ビックデータとPythonではじめる野球の統計分析 #pyconjp
ビックデータとPythonではじめる野球の統計分析 #pyconjp
中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~
WebエンジニアとWebディレクターを兼任してわかった3つのこと
WebエンジニアとWebディレクターを兼任してわかった3つのこと
Similar a パッケージングの今と未来
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方
Takesxi Sximada
PsychoPy Builder:モジュールの組み込みと視線計測
PsychoPy Builder:モジュールの組み込みと視線計測
HiroyukiSogo
『自走プログラマー』 が我々に必要だった理由
『自走プログラマー』 が我々に必要だった理由
Takayuki Shimizukawa
チームで活用するAnaconda入門
チームで活用するAnaconda入門
Takeshi Akutsu
WindowsでPython
WindowsでPython
drillan
PyPI入門2018
PyPI入門2018
Yukino Ikegami
Similar a パッケージングの今と未来
(6)
サードパーティパッケージの歩き方
サードパーティパッケージの歩き方
PsychoPy Builder:モジュールの組み込みと視線計測
PsychoPy Builder:モジュールの組み込みと視線計測
『自走プログラマー』 が我々に必要だった理由
『自走プログラマー』 が我々に必要だった理由
チームで活用するAnaconda入門
チームで活用するAnaconda入門
WindowsでPython
WindowsでPython
PyPI入門2018
PyPI入門2018
Más de Atsushi Odagiri
async/await の向こう側 PyCon Kyushu 2022
async/await の向こう側 PyCon Kyushu 2022
Atsushi Odagiri
pyconjp 2019 LT 今日のsetuptools
pyconjp 2019 LT 今日のsetuptools
Atsushi Odagiri
Pythonでの開発を効率的に進めるためのツール設定
Pythonでの開発を効率的に進めるためのツール設定
Atsushi Odagiri
Python3 移行への軌跡
Python3 移行への軌跡
Atsushi Odagiri
Sqlalchemy sqlの錬金術
Sqlalchemy sqlの錬金術
Atsushi Odagiri
Clack meetup #1 lt
Clack meetup #1 lt
Atsushi Odagiri
Pyramid入門
Pyramid入門
Atsushi Odagiri
Bplt11 form alchemy
Bplt11 form alchemy
Atsushi Odagiri
Python3でwebアプリ
Python3でwebアプリ
Atsushi Odagiri
Pyconjp2012 memory-of-europython
Pyconjp2012 memory-of-europython
Atsushi Odagiri
What makes pyramid unique
What makes pyramid unique
Atsushi Odagiri
エキPy lt repoze.whoの紹介
エキPy lt repoze.whoの紹介
Atsushi Odagiri
World plonedaylt
World plonedaylt
Atsushi Odagiri
Setup.pysetup.cfg
Setup.pysetup.cfg
Atsushi Odagiri
BPStudy#54 そろそろPython3
BPStudy#54 そろそろPython3
Atsushi Odagiri
Form libraries
Form libraries
Atsushi Odagiri
フレームワークなしでWSGIプログラミング
フレームワークなしでWSGIプログラミング
Atsushi Odagiri
Form libraries
Form libraries
Atsushi Odagiri
Aodag scaffold
Aodag scaffold
Atsushi Odagiri
Nose 鼻をきかせてテストせよ
Nose 鼻をきかせてテストせよ
Atsushi Odagiri
Más de Atsushi Odagiri
(20)
async/await の向こう側 PyCon Kyushu 2022
async/await の向こう側 PyCon Kyushu 2022
pyconjp 2019 LT 今日のsetuptools
pyconjp 2019 LT 今日のsetuptools
Pythonでの開発を効率的に進めるためのツール設定
Pythonでの開発を効率的に進めるためのツール設定
Python3 移行への軌跡
Python3 移行への軌跡
Sqlalchemy sqlの錬金術
Sqlalchemy sqlの錬金術
Clack meetup #1 lt
Clack meetup #1 lt
Pyramid入門
Pyramid入門
Bplt11 form alchemy
Bplt11 form alchemy
Python3でwebアプリ
Python3でwebアプリ
Pyconjp2012 memory-of-europython
Pyconjp2012 memory-of-europython
What makes pyramid unique
What makes pyramid unique
エキPy lt repoze.whoの紹介
エキPy lt repoze.whoの紹介
World plonedaylt
World plonedaylt
Setup.pysetup.cfg
Setup.pysetup.cfg
BPStudy#54 そろそろPython3
BPStudy#54 そろそろPython3
Form libraries
Form libraries
フレームワークなしでWSGIプログラミング
フレームワークなしでWSGIプログラミング
Form libraries
Form libraries
Aodag scaffold
Aodag scaffold
Nose 鼻をきかせてテストせよ
Nose 鼻をきかせてテストせよ
Último
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
Último
(8)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
パッケージングの今と未来
1.
パッケージングの 今と未来 aodag - Atsushi
Odagiri PyCon APAC 2013
2.
お前誰よ aodag 小田切篤 Atsushi
Odagiri Be Proud, Inc. pylonsproject.jp Pythonは10年ほど使わせていただいております
3.
Agenda パッケージングの基礎知識 パッケージングの今 パッケージングの未来 まとめ
4.
パッケージングの基礎知識 なぜパッケージングするのか? Pythonでのパッケージング
5.
なぜパッケージングするのか? ● 作ったものを誰かに使ってもらう ● 誰かが作ったものを使う
6.
素朴な方法 hello.pyを渡して python hello.py
7.
distutils setup.pyにパッケージ情報を書く python setup.py sdist
でソースパッケージ作成 python setup.py install でパッケージインストール
8.
パッケージングの今 Pypaツール群 setuptoolsベースのパッケージング Pythonパッケージ開発の流れ
9.
Pypa Python Packaging
Authority パッケージング関連の重要なツールをメンテナンス する非公式なグループ なぜかリポジトリがgithubとbitbucketにわかれてい る github pip virtualenv bitbucket setuptools pypi distlib
10.
モダンなPythonの環境作り Pypaツール群 ● virtualenv ● setuptools ●
pip virtualenvは環境作成時にsetuptools,pipがそ ろった環境にしてくれる
11.
pip パッケージインストーラー sdistしか扱えない(状態が続いていた) さまざまなロケーションからインストール pip install パッケージ名 pip
install パッケージURL pip install vcs{git,hg..}+リポジトリURL@チェンジ セット
12.
pip requirements.txtにパッケージを全部指定 pip install -r
requrements.txt パッケージを削除 pip uninstall spam
13.
pip easy_installとは なんだったのか?
14.
setuptools/distribute setup.pyを強化 配布するまでのコマンド setup.py test setup.py register setup.py
sdist bdist_egg upload setup.py upload_docs
15.
setuptools/distribute pkg_resources ● パッケージのメタデータを利用するためのライブ ラリ ● パッケージに含まれるメディアデータの取得など ●
entry_point(後述)のローディングなども行える
16.
setuptools/distribute setuptoolsとdistributeの関係 setuptoolsがあまり更新などしない distributeがフォーク distributeがpy3対応などいろいろ 2013 PyCon USでマージ宣言
Pypaがメンテする distributeコードベースでsetuptools-0.7など setuptools-0.8,0.9,0.9.1...0.9.8,1.0,1.1,1.1.5
17.
setuptools distributeのことは 忘れてあげてください
18.
setuptools マージ後のsetuptoolsは バージョンあげすぎです><
19.
setuptools/distribute packages=find_packages() packagesに自分でパッケージを羅列しなくてもよい install_requires, tests_require, extras_require, setup_require ライブラリの依存性を指定
20.
setuptools/distribute entry_point プラグインの仕組み CUIコマンドを作る例 entry_point={ “console_scripts”: [ “hello=hello:greeting”, ], }
21.
entry_point活用例 PasteDeploy nose cliff setuptoolsのサブコマンド
22.
egg バイナリパッケージ C拡張などのコンパイル済ライブラリなどを含める ソースとメタデータをzipアーカイブしたもの PIPでは扱えない
23.
egg-info pyramid-1.5a1-py33.egg-infoの例 ● PKG-INFO ● SOURCES.txt ●
dependency_links.txt ● entry_points.txt ● not-zip-safe ● requires.txt ● top_level.txt
24.
PyPI パッケージを登録して配布するサイト pipやeasy_installはデフォルトで、PyPIにパッケー ジを探しに行く
25.
pip,setuptools,virtualenvでの開発 仮想環境作成と利用 mkdir yourproject cd yourproject virtualenv
env . env/bin/activate or env/scripts/activate.ps1
26.
pip,setuptools,virtualenvでの開発 プロジェクトのディレクトリ構成 yourproject/ ┣ env/ ┣ setup.py ┣
setup.cfg ┣ docs/ ┗yourproject/__init__.py ┗main.py
27.
最小限のsetup.py from setuptools import
setup, find_packages setup(name=”yourproject”, packages=find_packages(), )
28.
実用的なsetup.py from setuptools import
setup, find_packages setup(name=”yourproject”, packages=find_packages(), install_requires=[“webob”], tests_require=[“testfixtures”], test_suite=”yourproject”, )
29.
pip,setuptools,virtualenvでの開発 開発対象のegg登録と依存ライブラリインストール (Editable Install) pip install
-e .
30.
pip,setuptools,virtualenvでの開発 テストから、PyPIへのアップロード、PythonHosted へのドキュメントアップロード python setup.py test python
setup.py egg_info python setup.py check python setup.py register python setup.py sdist bdist_egg upload python setup.py build_sphinx python setup.py upload_docs
31.
extras_requireを活用する setup( … extras_require={ “testing”: tests_require, “docs”: docs_require, “dev”:
tests_require + docs_require, } )
32.
extras_requireを活用する extrasを指定してEditable Install pip install
-e .[dev]
33.
setup.cfg devパッケージ [egg_info] tag-build = dev sdistやbdist_eggなどで生成されるパッケージの バージョンの後にdevが付加される
34.
setup.cfg コマンドのオプションを指定 [upload_docs] upload_dir = docs/build/html python
setup.py upload_docs で自動でオプショ ン追加
35.
setup.cfg コマンドを追加(alias) [aliases] release = egg_info
-RDb '' source = register sdist binary binary = bdist_egg upload --show-response python setup.py release source
36.
パッケージングの未来 関連PEP wheel distlib Metadata 2.0
37.
pip インストーラー easy_installsetup.py install distutils パッケージャー setuptools/distribute パッケージフォーマット sdist egg Metadata1.0 wheel Metadata2.0 ? pkg_resources(setuptools) ユーティリティモジュール distlib 今 未来
38.
関連PEP PEP 345 --
Metadata 1.2 PEP 376 -- Database PEP 386 -- Version PEP 420 -- Namespace Package PEP 426 -- Metadata 2.0 PEP 427 -- Wheel PEP 440 -- Version PEP 453 -- Bundle PIP Installer
39.
Wheel ● バイナリパッケージフォーマット ● Metadata
2.0を含むzip ● 電子署名可能 ● bdist_wheelやegg2wheel, distlib.wheelなど で作成 ● C拡張などを含まない場合はpy2,py3両用のユ ニバーサル構成可能 ● 既にpipもサポート開始 ● PyPIは?
40.
distlib ● 関連PEPの実装ライブラリ ● PyPIへのアクセスAPI ●
パッケージ同梱のメディアファイルへのアクセス ● Scriptsのインストール ● 機能検証用にdistilというコマンドがある
41.
Metadata 2.0 pydist.json ●
egg-infoでばらばらだった項目(requires, entry_point)とMetadata1.0(PKG-INFO)を統合 ● josnフォーマット ● wheelの dist-info に配置する
42.
pkg_resourcesからdistlibへ ● だいたい同じことができる ● entry_pointとexportsで非互換性がある
43.
setuptoolsのwheel対応 setuptools自体はdistlibもwheelも対応していない wheelをインストールすると、setupにbdist_wheel コマンドが追加される
44.
pipのwheel対応 ● distlibを同梱して、wheelパッケージをインス トール可能 ● sdistに対してbdist_wheelする実装が既に取り 込まれている(インストールはしない) ●
直接sdistをインストールする場合は bdist_egg が実行される
45.
Wheelをどう使うか? 例:Webアプリケーションのデプロイ アプリサーバーにgccがない!Pillowをどうインス トールするか? wheelで作成してアプリケーションサーバーに配布 する。 pipでwheelをインストール(pipはeggパッケージを 取り扱えない)
46.
開発マシン パッケージサーバー ステージングサーバー プロダクションサーバー リポジトリ CIサーバー ソースコード sdist wheel requirements.txt wheel
47.
議論中の話題 ● sdistをインストールする際に、setup.py bdist_eggは必須か? ● パッケージャーがwheelを作成するのをサポート するツールは? ○
bdist_wheelはsetuptoolsとwheelが必要 ○ sdist.wheelはpydist.jsonを自分で書く ○ bentoは独自形式のmetadataファイルから変換する ● 各Linuxディストリビューションの反応、作業はど のようになるか?
48.
まとめ ● 今はsetuptoolsの使い方とsetup.pyの書き方を ちゃんと覚えよう ● pipはがんばってpepに追従しているので今後も 安泰に見える ●
setuptoolsはいい加減にしてほしい ● wheelはデプロイで活用できるかも
49.
参考文献 ● Distributing Python
Modules ● Python Packaging User Guide ● Wheel ● distlib ● setuptools ● pip ● Bento ● pypa bitbucket ● pypa github
Descargar ahora