【Python】setuptoolsで自作モジュールを一発入魂
下記リポジトリのREADMEにソースと一緒にまとめた。
下記README
setuppy
setuptoolsを使ってsetup.pyを試してみたリポジトリです。
setuptoolsについて
- 今までは頑張って
sys.path.append()
で自作モジュールをimportしていたが、相対パスを考えたりしなくてはならず面倒だった - setuptoolsなら自作モジュールをpipや開発環境に一発入魂できる
- どこからでもimportできる
- GitHubからもpip installできる
- コマンドラインツールもinstallできる
- twineを使えばPyPIにアップロードして普通にpip installもできるようになる
本レポのディレクトリ構造
. ├── setup.py ├── sample │ ├── __init__.py │ ├── hoge.py │ └── sample.py └── test └── test.py
Local develop
- ローカルファイルを更新すると即座に更新が反映される。
- 開発用途ならこれで良さそう。
Install on Local develop
インストール
cd setuppy
python setup.py develop
確認
pip list | grep sampleA
実行
python test/test.py
developインストールするなら下記は省いても動いた
__init__.py
setup.py
のpackagesとentry_points部分
Uninstall on Local develop
python setup.py develop -u
pip
- GitHubに置けばGitHubから配布が可能になる
- 当然だがスクリプトを更新したら再度pip installする必要がある
- 上記で触れた
__init__.py
とsetup.py
のpackage記述がいる
pip install
cd setuppy
pip install .
pip install from GitHub
pip install git+https://github.com/keix1/setuppy.git
pip uninstall
pip uninstall SampleA
コマンドラインツールとして使う
- 本レポをInstall済みであれば
sample_command
が使えるようになっている
sample_command
setup.py
のentry_points
のconsole_scripts
がCLIツール指定するための記述になっている
わかったこと
- develop installでは
.egg-info
に関係性が保存されてる様子 __init__.py
は空ファイルでもいいみたい- CLIツールとして使えるのちょっとやばい