Poetry を用いた Python プロジェクトの作成
環境構築
Python と Poetry がインストール済みの場合はスキップ
pyenv と Python のインストール
インストール済みの場合はスキップ
参考: https://github.com/pyenv/pyenv-installer
# 依存パッケージのインストール
sudo apt update
sudo apt install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
curl https://pyenv.run | bash
~/.bashrc
にパスを通す
```bash title=’.bashrc’
export PATH=$PATH:~/.pyenv/bin
eval “$(pyenv init –path)”
eval “$(pyenv virtualenv-init -)”
次に Python のインストールを行う。
```bash
# インストール可能なバージョン一覧を表示
pyenv install -l
# Python 3.10.2 をインストール
pyenv install 3.10.2
# バージョンの設定
pyenv global 3.10.2
# バージョンの確認
pyenv versions
Poetry のインストール
インストール済みの場合はスキップ
pip install --upgrade pip
pip install poetry
Python プロジェクトの作成
ひな形を作成
プロジェクト名を myapp
として、Python プロジェクトを作成する。
poetry new myapp
pyproject.toml
にプロジェクトの設定を記述する。
- ./
- README.rst
- myapp/ (Python のコードがあるところ)
- __init__.py
- pyproject.toml (プロジェクトの設定ファイル)
- tests/ (テストコードがあるところ)
- __init__.py
- test_myapp.py
./
上で import myapp
すると、myapp/__init__.py
が読み込まれる。
プロジェクトに再利用可能な Python コードを追加
例:
myapp/
下にhoge.py
を作成する。
.
├── README.rst
├── myapp
│ ├── __init__.py
+ │ └── hoge.py
├── pyproject.toml
└── tests
├── __init__.py
└── test_myapp.py
2 directories, 6 file
./
上で from myapp import hoge
をすると、hoge.py
が読み込まれる。
例:
hoge.py
の関数を利用するpy title='myapp/hoge.py' def hello(): print('Hello, world!')
./
上で以下を実行すると、hello()
を呼び出し可能。クラスも同様。
>>> from myapp.hoge import hello
>>> hello()
Hello, world!
パッケージの追加
依存するパッケージが必要な場合は、poetry add
を実行する。
削除は poetry remove
。
例: numpy を追加
poetry add numpy
パッケージの作成
myapp
パッケージを作成する。
プロジェクトをライブラリとしてインストール・利用が可能に。
poetry build
dist/
下に whell と tarball が作成される。
作成されたパッケージは pip コマンドでインストール可能。
pip install dist/myapp-0.1.0.tar.gz
プロジェクトをパッケージとして配布
(後日、追記予定)