Poetry を用いた Python プロジェクトの作成
 · 約2分
環境構築
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 にパスを通す
.bashrc
export PATH=$PATH:~/.pyenv/bin
eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)"
次に Python のインストールを行う。
# インストール可能なバージョン一覧を表示
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の関数を利用する
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
プロジェクトをパッケージとして配布
(後日、追記予定)
