SlideShare a Scribd company logo
パッケージングの呼び声
Python Charity Talks in Japan 2021.02
Atsushi Odagiri
2021-02-20
Outline
Preface
PEP 動向
さよなら distutils
packaging FAQ
おわりに
1
Preface
お前誰よ
• aodag
• パッケージングの話
• opencollector
2
今日の setuptools
• Feb 2, 2021 53.0.0
3
お詫び
• パッケージの呼び声というタイトルにしましたが、資
料作成しているうちにクトゥルフ要素 (名状しがたき
setup.py など) がなくなってしまったのでタイトルは気
にしないでください。
PIP…PIP…WHEEL…TWINE…
WAREHOUSE…PyPI…SDIST…
PIP…PIP…
4
PEP動向
PEP 561 – Distributing and Packaging Type Informa-
tion
• typeshed で管理されていた stub-only packages が
pypi で配布されるようになりました。
• 多くのパッケージ名は types-** という名前になって
います
• types-numpy だけは事前に配布されていたっぽい
5
PEP 621 – Storing project metadata in pyproject.toml
• poetry や flit などのパッケージングツールは
pyproject.toml にパッケージメタデータを書く
• それぞれのツール以下のセクション (tool.poetry
など) にそれぞれのツールが決めたスキーマでメタデー
タを書いている
• 統一してきましょう
6
PEP 627 – Recording installed projects
• PEP 376 – Database of Installed Python Distributions
の更新
• RECORD と INSTALLER ファイルを明確にする
• REQUESTED ファイルは廃止
7
PEP 639 – Metadata for Python Software Packages 2.2
• License フィールドに使える値を明確にする
• spdx license identifier
• Software Package Data Exchange
• spdx のライセンス ID 一覧
https://spdx.org/licenses/
• License-File フィールド追加
8
PEP 643 – Metadata for Package Source Distributions
• sdist の時点では決まらないメタデータの値がある
• sdist 時点で提供するメタデータに含めないフィールド
を Dynamic フィールドってことで明確にします
9
PEP 632 – Deprecate distutils module
• distutils は標準ライブラリから削除されます
• 3.10 で deprecation warning となりました
• po-41282: Add deprecation warning and docs for
distutils (PEP 632)
• 今後 3.12 で削除される予定
10
さよならdistutils
distutils ってなに
In Python 2.0, the distutils API was first added to
the standard library. This provided Linux distro
maintainers with a standard way of converting
Python projects into Linux distro packages, and
system administrators with a standard way of in-
stalling them directly onto target systems.
• Python パッケージを各種 OS のパッケージに変換した
り、直接インストールするための方法として用意さ
れた。
11
setuptools との関わり
• すでに多くの人が distutils を直接使わず、setuptools
経由で利用している
• 実質 setuptools.setup =
distutils.core.setup
• setup_requires を処理するためのフックがある
だけ
def setup(**attrs):
# Make sure we have any requirements needed
_install_setup_requires(attrs)
return distutils.core.setup(**attrs)
12
setup.py はもう不要?
• setuptools も PEP517 対応
• setup.py がなくても pyproject.toml と
setup.cfg があれば wheel 作成可能
• ただし editable install(pip install -e .) は setup.py が
ないとだめ
13
setuptools の対応
• pypa リポジトリで distutils のソースを管理
• https://github.com/pypa/distutils
• setuptools/_distutils に distutils のソースを同梱
(v48.0.0)
14
我々はなにをすべきか
• 直接 distutils を使うことはほぼないはず
• distutils.util なんて使ってないですよね?
• 特に strtobool
• そのうち distutils が消えると予想して asbool というも
のを作っておきました
• https://pypi.org/project/asbool/
15
packaging FAQ
PEP517 とは?
• wheel を作成するための手順の定義
• これまでは setup.py を呼ぶという慣習で sdist か
ら wheel を作成していた
• pyproject.toml にビルドツールの設定を書く
• PEP518 が pyproject.toml の定義
16
PEP517 対応パッケージのビルド方法は?
• https://pypi.org/project/build/
• pep517.build から build へ
• python -m pep517.buid
• python -m build
• その他ツール独自にコマンドが用意されている
• poetry build
• flit build
17
パッケージによって PyPI に wheel があったりなかった
りするのは?
• そのプロジェクトが作って PyPI にあげてくれないと
wheel がありません
• pypi で wheel を生成すべきかという議論はあります
18
Apple シリコンの Mac ではどういう wheel が使える?
• universal2 になるはず
19
poetry 使うべき?
• 良いと思います
• git の tag からパッケージバージョンを生成するような
拡張も出てきています
• poetry-dynamic-versioning
• ケンオール でも使ってます :)
20
poetry で C 拡張を作るには?
• build.py を作る方法がワークアラウンドとしてよく
知られています
• distutils を import してるので、動かなくなりますね
21
パッケージバージョンをプログラム内部で参照できるよ
うにするには?
• いくつかワークアラウンドがありますが、どれもそれな
りなのでこれじゃないとだめというものでもないです。
• setuptools_scm や
poetry-dynamic-versioning はバージョン情報
を含んだモジュールを生成する機能があります。
• pkg_resources を使ってメタデータを取得する方法
もあります。
try:
__version__ = __import__('pkg_resources')
.get_distribution('foo').version
except Exception:
__version__ = "dev"
22
Linux なのに manylinux2014 の wheel をインストール
してくれません
• pip を新しくしないと manylinux の新しいバージョン
に対応していないです
• PEP599 manylinux2014(centos7 相当) pip19.3
• PEP571 manylinux2010(centos6 相当) pip19.0
• PEP513 manylinux1(centos5 相当) pip8.1.0
23
wheelのファイル名でcp39-cp39のように2回もpython
バージョンが書かれているのはなぜですか
• python API の abi を表しています
• PEP 3149 – ABI version tagged .so files
• cp39m や cp27mu, abi3 が使われることがあります
• abi3(PEP 384 – Defining a Stable ABI) は python API の
うち stable な API を使っているため ABI 互換性があり
ます
• abi3 tag のついた wheel は cPython バージョンに依存
しません
• u はユニコードの内部表現が UCS2 か UCS4 かを表しま
す。3.3 以降は UCS4 となり ABI に u 表現は必要なくな
りました。(PEP 393 – Flexible String Representation)
• m は pymalloc をメモリアロケーションに使っていると
いう意味。python3.6 以降でメモリアロケーションの実 24
おわりに
まとめ
• どちらかというとツール作成者向けの結構細かい PEP
が進んでいる印象
• メタデータのフィールドやファイルに関する取り決め
が明確となり、ツール相互運用がしやすくなっていく
はず
• distutils に限らず old battery の削除 PEP があります
25
参考文献
• Python Packaging User Guide
• PyPA Repository
• Discussions on python.org Packaging Category
• Python PEPs
26

More Related Content

What's hot

みんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしようみんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしよう
Atsushi Odagiri
 
WebSocketでカメラの映像を共有してみた
WebSocketでカメラの映像を共有してみたWebSocketでカメラの映像を共有してみた
WebSocketでカメラの映像を共有してみた
onozaty
 
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出
富士通クラウドテクノロジーズ株式会社
 
Noisy Labels と戦う深層学習
Noisy Labels と戦う深層学習Noisy Labels と戦う深層学習
Noisy Labels と戦う深層学習
Plot Hong
 
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
Deep Learning JP
 
PCIDSSで学ぶNeuVectorの基礎(Kubernetes Novice Tokyo #21 発表資料)
PCIDSSで学ぶNeuVectorの基礎(Kubernetes Novice Tokyo #21 発表資料)PCIDSSで学ぶNeuVectorの基礎(Kubernetes Novice Tokyo #21 発表資料)
PCIDSSで学ぶNeuVectorの基礎(Kubernetes Novice Tokyo #21 発表資料)
NTT DATA Technology & Innovation
 
OpenStack入門 2016/06/10
OpenStack入門 2016/06/10OpenStack入門 2016/06/10
OpenStack入門 2016/06/10
株式会社 NTTテクノクロス
 
Docker超入門
Docker超入門Docker超入門
Docker超入門
VirtualTech Japan Inc.
 
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
ksk_ha
 
SSII2018TS: 大規模深層学習
SSII2018TS: 大規模深層学習SSII2018TS: 大規模深層学習
SSII2018TS: 大規模深層学習
SSII
 
CI/CDって何が良いの?〜言うてるオレもわからんわ〜 #DevKan
CI/CDって何が良いの?〜言うてるオレもわからんわ〜 #DevKanCI/CDって何が良いの?〜言うてるオレもわからんわ〜 #DevKan
CI/CDって何が良いの?〜言うてるオレもわからんわ〜 #DevKan
Kazuhito Miura
 
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
Pythonとパッケージングと私
Pythonとパッケージングと私Pythonとパッケージングと私
Pythonとパッケージングと私
Atsushi Odagiri
 
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
CF-FinML 金融時系列予測のための機械学習
CF-FinML 金融時系列予測のための機械学習CF-FinML 金融時系列予測のための機械学習
CF-FinML 金融時系列予測のための機械学習
Katsuya Ito
 
Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化
Yusuke Fujimoto
 
Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!
Etsuji Nakai
 
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
Shigeru Hanada
 

What's hot (20)

みんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしようみんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしよう
 
WebSocketでカメラの映像を共有してみた
WebSocketでカメラの映像を共有してみたWebSocketでカメラの映像を共有してみた
WebSocketでカメラの映像を共有してみた
 
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出
 
Noisy Labels と戦う深層学習
Noisy Labels と戦う深層学習Noisy Labels と戦う深層学習
Noisy Labels と戦う深層学習
 
ctypes拡張モジュール
ctypes拡張モジュールctypes拡張モジュール
ctypes拡張モジュール
 
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
[DL輪読会]Set Transformer: A Framework for Attention-based Permutation-Invariant...
 
PCIDSSで学ぶNeuVectorの基礎(Kubernetes Novice Tokyo #21 発表資料)
PCIDSSで学ぶNeuVectorの基礎(Kubernetes Novice Tokyo #21 発表資料)PCIDSSで学ぶNeuVectorの基礎(Kubernetes Novice Tokyo #21 発表資料)
PCIDSSで学ぶNeuVectorの基礎(Kubernetes Novice Tokyo #21 発表資料)
 
OpenStack入門 2016/06/10
OpenStack入門 2016/06/10OpenStack入門 2016/06/10
OpenStack入門 2016/06/10
 
Docker超入門
Docker超入門Docker超入門
Docker超入門
 
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
 
SSII2018TS: 大規模深層学習
SSII2018TS: 大規模深層学習SSII2018TS: 大規模深層学習
SSII2018TS: 大規模深層学習
 
CI/CDって何が良いの?〜言うてるオレもわからんわ〜 #DevKan
CI/CDって何が良いの?〜言うてるオレもわからんわ〜 #DevKanCI/CDって何が良いの?〜言うてるオレもわからんわ〜 #DevKan
CI/CDって何が良いの?〜言うてるオレもわからんわ〜 #DevKan
 
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Pythonとパッケージングと私
Pythonとパッケージングと私Pythonとパッケージングと私
Pythonとパッケージングと私
 
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
CF-FinML 金融時系列予測のための機械学習
CF-FinML 金融時系列予測のための機械学習CF-FinML 金融時系列予測のための機械学習
CF-FinML 金融時系列予測のための機械学習
 
Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化
 
Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!
 
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
 

Similar to パッケージングの呼び声 Python Charity Talks in Japan 2021.02

PYTHON PACKAGING (PyFes 2012.03 発表資料)
PYTHON PACKAGING (PyFes 2012.03 発表資料)PYTHON PACKAGING (PyFes 2012.03 発表資料)
PYTHON PACKAGING (PyFes 2012.03 発表資料)
Takayuki Shimizukawa
 
Python3 プログラミング勉強会
Python3 プログラミング勉強会Python3 プログラミング勉強会
Python3 プログラミング勉強会Tetsuya Morimoto
 
とあるWeb企業でのDebianシステムの使い方。
とあるWeb企業でのDebianシステムの使い方。とあるWeb企業でのDebianシステムの使い方。
とあるWeb企業でのDebianシステムの使い方。
Kouhei Maeda
 
PsychoPy Builder:モジュールの組み込みと視線計測
PsychoPy Builder:モジュールの組み込みと視線計測PsychoPy Builder:モジュールの組み込みと視線計測
PsychoPy Builder:モジュールの組み込みと視線計測
HiroyukiSogo
 
2分でパッケージを作ってインストールする
2分でパッケージを作ってインストールする2分でパッケージを作ってインストールする
2分でパッケージを作ってインストールする
TokorosawaYoshio
 
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjpPythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjpYoshifumi Yamaguchi
 
PyPI入門2018
PyPI入門2018PyPI入門2018
PyPI入門2018
Yukino Ikegami
 
Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料
Nobuhiro Iwamatsu
 
Fukuoka debianstudy02 / 福岡Debian勉強会 02
Fukuoka debianstudy02 / 福岡Debian勉強会 02Fukuoka debianstudy02 / 福岡Debian勉強会 02
Fukuoka debianstudy02 / 福岡Debian勉強会 02
Aya Komuro
 
20190722 Building handy CI with zuul and OpenStack
20190722 Building handy CI with zuul and OpenStack20190722 Building handy CI with zuul and OpenStack
20190722 Building handy CI with zuul and OpenStack
Akihiro Motoki
 
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
Satoshi Kume
 
今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版
VirtualTech Japan Inc./Begi.net Inc.
 
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
aoshiman
 
パッケージングの今
パッケージングの今パッケージングの今
パッケージングの今Atsushi Odagiri
 
Pydata tokyo-24-hootku
Pydata tokyo-24-hootkuPydata tokyo-24-hootku
Pydata tokyo-24-hootku
Yasunori Horikoshi
 
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
Takanori Suzuki
 
初めてのHadoopパッチ投稿 / How to Contribute to Hadoop (Cloudera World Tokyo 2014 LT講演資料)
初めてのHadoopパッチ投稿 / How to Contribute to Hadoop (Cloudera World Tokyo 2014 LT講演資料)初めてのHadoopパッチ投稿 / How to Contribute to Hadoop (Cloudera World Tokyo 2014 LT講演資料)
初めてのHadoopパッチ投稿 / How to Contribute to Hadoop (Cloudera World Tokyo 2014 LT講演資料)
Hadoop / Spark Conference Japan
 
パッケージングの今と未来
パッケージングの今と未来パッケージングの今と未来
パッケージングの今と未来Atsushi Odagiri
 
OCaml でデータ分析
OCaml でデータ分析OCaml でデータ分析
OCaml でデータ分析
Akinori Abe
 

Similar to パッケージングの呼び声 Python Charity Talks in Japan 2021.02 (20)

PYTHON PACKAGING (PyFes 2012.03 発表資料)
PYTHON PACKAGING (PyFes 2012.03 発表資料)PYTHON PACKAGING (PyFes 2012.03 発表資料)
PYTHON PACKAGING (PyFes 2012.03 発表資料)
 
Python3 プログラミング勉強会
Python3 プログラミング勉強会Python3 プログラミング勉強会
Python3 プログラミング勉強会
 
とあるWeb企業でのDebianシステムの使い方。
とあるWeb企業でのDebianシステムの使い方。とあるWeb企業でのDebianシステムの使い方。
とあるWeb企業でのDebianシステムの使い方。
 
Products.PloneOrg
Products.PloneOrgProducts.PloneOrg
Products.PloneOrg
 
PsychoPy Builder:モジュールの組み込みと視線計測
PsychoPy Builder:モジュールの組み込みと視線計測PsychoPy Builder:モジュールの組み込みと視線計測
PsychoPy Builder:モジュールの組み込みと視線計測
 
2分でパッケージを作ってインストールする
2分でパッケージを作ってインストールする2分でパッケージを作ってインストールする
2分でパッケージを作ってインストールする
 
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjpPythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
 
PyPI入門2018
PyPI入門2018PyPI入門2018
PyPI入門2018
 
Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料
 
Fukuoka debianstudy02 / 福岡Debian勉強会 02
Fukuoka debianstudy02 / 福岡Debian勉強会 02Fukuoka debianstudy02 / 福岡Debian勉強会 02
Fukuoka debianstudy02 / 福岡Debian勉強会 02
 
20190722 Building handy CI with zuul and OpenStack
20190722 Building handy CI with zuul and OpenStack20190722 Building handy CI with zuul and OpenStack
20190722 Building handy CI with zuul and OpenStack
 
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
 
今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版
 
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
 
パッケージングの今
パッケージングの今パッケージングの今
パッケージングの今
 
Pydata tokyo-24-hootku
Pydata tokyo-24-hootkuPydata tokyo-24-hootku
Pydata tokyo-24-hootku
 
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
 
初めてのHadoopパッチ投稿 / How to Contribute to Hadoop (Cloudera World Tokyo 2014 LT講演資料)
初めてのHadoopパッチ投稿 / How to Contribute to Hadoop (Cloudera World Tokyo 2014 LT講演資料)初めてのHadoopパッチ投稿 / How to Contribute to Hadoop (Cloudera World Tokyo 2014 LT講演資料)
初めてのHadoopパッチ投稿 / How to Contribute to Hadoop (Cloudera World Tokyo 2014 LT講演資料)
 
パッケージングの今と未来
パッケージングの今と未来パッケージングの今と未来
パッケージングの今と未来
 
OCaml でデータ分析
OCaml でデータ分析OCaml でデータ分析
OCaml でデータ分析
 

More from Atsushi Odagiri

async/await の向こう側 PyCon Kyushu 2022
async/await の向こう側 PyCon Kyushu 2022async/await の向こう側 PyCon Kyushu 2022
async/await の向こう側 PyCon Kyushu 2022
Atsushi Odagiri
 
eggとはなんだったのか 栄光のsetuptools
eggとはなんだったのか 栄光のsetuptoolseggとはなんだったのか 栄光のsetuptools
eggとはなんだったのか 栄光のsetuptools
Atsushi Odagiri
 
pyconjp 2019 LT 今日のsetuptools
pyconjp 2019 LT 今日のsetuptoolspyconjp 2019 LT 今日のsetuptools
pyconjp 2019 LT 今日のsetuptools
Atsushi Odagiri
 
Pythonでの開発を効率的に進めるためのツール設定
Pythonでの開発を効率的に進めるためのツール設定Pythonでの開発を効率的に進めるためのツール設定
Pythonでの開発を効率的に進めるためのツール設定
Atsushi Odagiri
 
Python3 移行への軌跡
Python3 移行への軌跡Python3 移行への軌跡
Python3 移行への軌跡
Atsushi Odagiri
 
Sqlalchemy sqlの錬金術
Sqlalchemy  sqlの錬金術Sqlalchemy  sqlの錬金術
Sqlalchemy sqlの錬金術Atsushi Odagiri
 
Clack meetup #1 lt
Clack meetup #1 ltClack meetup #1 lt
Clack meetup #1 lt
Atsushi Odagiri
 
パッケージングの今と未来
パッケージングの今と未来パッケージングの今と未来
パッケージングの今と未来Atsushi Odagiri
 
Pyconjp2012 memory-of-europython
Pyconjp2012 memory-of-europythonPyconjp2012 memory-of-europython
Pyconjp2012 memory-of-europythonAtsushi Odagiri
 
What makes pyramid unique
What makes pyramid uniqueWhat makes pyramid unique
What makes pyramid uniqueAtsushi Odagiri
 
エキPy lt repoze.whoの紹介
エキPy lt repoze.whoの紹介エキPy lt repoze.whoの紹介
エキPy lt repoze.whoの紹介Atsushi Odagiri
 
BPStudy#54 そろそろPython3
BPStudy#54 そろそろPython3BPStudy#54 そろそろPython3
BPStudy#54 そろそろPython3Atsushi Odagiri
 
フレームワークなしでWSGIプログラミング
フレームワークなしでWSGIプログラミングフレームワークなしでWSGIプログラミング
フレームワークなしでWSGIプログラミングAtsushi Odagiri
 
Form libraries
Form librariesForm libraries
Form libraries
Atsushi Odagiri
 

More from Atsushi Odagiri (20)

async/await の向こう側 PyCon Kyushu 2022
async/await の向こう側 PyCon Kyushu 2022async/await の向こう側 PyCon Kyushu 2022
async/await の向こう側 PyCon Kyushu 2022
 
eggとはなんだったのか 栄光のsetuptools
eggとはなんだったのか 栄光のsetuptoolseggとはなんだったのか 栄光のsetuptools
eggとはなんだったのか 栄光のsetuptools
 
pyconjp 2019 LT 今日のsetuptools
pyconjp 2019 LT 今日のsetuptoolspyconjp 2019 LT 今日のsetuptools
pyconjp 2019 LT 今日のsetuptools
 
Pythonでの開発を効率的に進めるためのツール設定
Pythonでの開発を効率的に進めるためのツール設定Pythonでの開発を効率的に進めるためのツール設定
Pythonでの開発を効率的に進めるためのツール設定
 
Python3 移行への軌跡
Python3 移行への軌跡Python3 移行への軌跡
Python3 移行への軌跡
 
Sqlalchemy sqlの錬金術
Sqlalchemy  sqlの錬金術Sqlalchemy  sqlの錬金術
Sqlalchemy sqlの錬金術
 
Clack meetup #1 lt
Clack meetup #1 ltClack meetup #1 lt
Clack meetup #1 lt
 
Pyramid入門
Pyramid入門Pyramid入門
Pyramid入門
 
パッケージングの今と未来
パッケージングの今と未来パッケージングの今と未来
パッケージングの今と未来
 
Bplt11 form alchemy
Bplt11 form alchemyBplt11 form alchemy
Bplt11 form alchemy
 
Python3でwebアプリ
Python3でwebアプリPython3でwebアプリ
Python3でwebアプリ
 
Pyconjp2012 memory-of-europython
Pyconjp2012 memory-of-europythonPyconjp2012 memory-of-europython
Pyconjp2012 memory-of-europython
 
What makes pyramid unique
What makes pyramid uniqueWhat makes pyramid unique
What makes pyramid unique
 
エキPy lt repoze.whoの紹介
エキPy lt repoze.whoの紹介エキPy lt repoze.whoの紹介
エキPy lt repoze.whoの紹介
 
World plonedaylt
World plonedayltWorld plonedaylt
World plonedaylt
 
Setup.pysetup.cfg
Setup.pysetup.cfgSetup.pysetup.cfg
Setup.pysetup.cfg
 
BPStudy#54 そろそろPython3
BPStudy#54 そろそろPython3BPStudy#54 そろそろPython3
BPStudy#54 そろそろPython3
 
Form libraries
Form librariesForm libraries
Form libraries
 
フレームワークなしでWSGIプログラミング
フレームワークなしでWSGIプログラミングフレームワークなしでWSGIプログラミング
フレームワークなしでWSGIプログラミング
 
Form libraries
Form librariesForm libraries
Form libraries
 

パッケージングの呼び声 Python Charity Talks in Japan 2021.02