Pythonのサードパーティパッケージの歩き方
所要時間: 約 4分
歩き方
サードパーティパッケージを
どうやって使うのか?
サードパーティパッケージをインストールする
python -m pip install requests
インストールしたサードパーティパッケージを使う
>>> import requests
>>> resp = requests.get("http://example.com")
(例としてrequestsを使用)
プロジェクト間でバージョンが食い違うことがある
Project | 必要なrequestsのバージョン |
---|---|
Project X | 2.27.1 |
Project Y | 2.26.0 |
1つの環境にインストールできるパッケージの
バージョンは1つのみ
どうすれば良いか?
仮想環境の作成
python -m venv project_x
仮想環境の活性化 (bashの場合)
source project_x/bin/activate
仮想環境の非活性化
deactivate
昔は別のツールを使用していた
昔話が気になる人向け↓
最近ではpipやvenv以外にも
別のツールが登場している
最近の話が気になる人向け↓
処理がイメージしやすくなる
なんでもかんでもブラックボックスにさせない。
実装の参考になる
人気のパッケージのコードのクオリティは高い。 自分でコードを書くときの指針になる。
ソースを読む心理障壁が下がる
多くのパッケージはOSS
ソースコードは公開されている。 インストールしているのであれば site-packages配下にファイルが存在している。
デバッガーで追いかける
(昔話が気になる人向け↓)
以前はbreakpointではなくpdbモジュールのset_trace()関数を記述していた。
def foo():
n = 1 + 1
import pdb; pdb.set_trace()
return n
知りたい事柄をあらかじめ明確にする
コードが多いことが多く、漠然と読んでも理解が深まらない。 すべてを知ろうとしない。
読んだ内容をまとめていく
今読んで理解した内容は1ヶ月後には忘れている。
再利用性のため
書かないとファイルをコピーしてつかう羽目になる
パッケージとして共有することで第三者も利用できる
どうやって書くのか?
#!/usr/bin/env python
from distutils.core import setup
setup(
name='package_name,
version='1.0',
description='Package description text',
author='TakesxiSximada',
author_email='[email protected]',
url='https://example.com',
packages=[],
)
pip install ./
pip install -e ./
sdist
python setup.py sdist
wheel
python setup.py bdist_wheel
twine自体のインストール
pip install twine
パッケージのアップロード
twine upload
Pythonのサードパーティパッケージの
扱い方を一通り確認した。
pipコマンドでパッケージをインストールする
サードパーティパッケージの多くはOSS
デバッガーを用いると理解しやすい
自作パッケージはPyPIに公開できる