$ cat /etc/os-release
NAME="Linux Mint"
VERSION="20.3 (Una)"
ID=linuxmint
ID_LIKE=ubuntu
PRETTY_NAME="Linux Mint 20.3"
VERSION_ID="20.3"
HOME_URL="https://www.linuxmint.com/"
SUPPORT_URL="https://forums.linuxmint.com/"
BUG_REPORT_URL="http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/"
PRIVACY_POLICY_URL="https://www.linuxmint.com/"
VERSION_CODENAME=una
UBUNTU_CODENAME=focal
# インストール
$ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
# アクティベート. .bashrc にも追記した
$ source $HOME/.poetry/env
# 確認
$ poetry --version # Poetry version 1.1.13
# 新しいプロジェクト demo を作成
$ poetry new demo
Created package demo in demo
# こういったテンプレートが作成される
$ tree demo/
demo/
├── README.rst
├── demo
│ └── __init__.py
├── pyproject.toml
└── tests
├── __init__.py
└── test_demo.py
2 directories, 5 files
$ cd 既存のプロジェクト
$ poetry init
最も大切なファイルは pyproject.toml
。ライブラリの依存関係などを管理してくれる設定ファイル。
[tool.poetry]
name = "demo"
version = "0.1.0"
description = ""
authors = ["shinseitaro <********@gmail.com>"]
[tool.poetry.dependencies]
python = "^3.9"
[tool.poetry.dev-dependencies]
pytest = "^5.2"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
pyproject.toml
追記[tool.poetry.dependencies] python = "^3.9" beautifulsoup4 = "" # 追加
- もし、プロジェクトディレクトリに仮想環境を作成したい場合は
$ poetry config virtualenvs.in-project true
- デフォルトは false
- false の場合は、デフォルトディレクトリ配下 (
$HOME/.cache/pypoetry/virtualenvs
) に仮想環境が作成される - すでに環境を作っている場合は、
poetry config virtualenvs.in-project true
は適用されないので、既存の環境を削除してから再作成する必要がある
- インストール
$ poetry install
- 確認
$ poetry env list --full-path
$ poetry add beautifulsoup4
- 実行後、
[tool.poetry.dependencies]
に自動で beautifulsoup4 = "バージョン名"` が追記される
- お作法としては、方法その1が良いみたい。
- ただし例のようにバージョンなしではなくバージョン指定したほうがよい。
- どのバージョンがいいのかわからん場合は、その2でやってみるのが良さそう。インストールされるバージョンは、コンフリクトが起きないバージョンもしくは最新が入るみたい。
$ poetry env list --full-path # --full-path はオプション
- 方法その1:
[tool.poetry.dependencies]
セクションから削除後poetry update
- 方法その2:
poetry remove ライブラリ名
# 仮想環境名取得
$ poetry env list
# 仮想環境削除
$ poetry env remove 環境名
- 依存関係が記述されている
- インストール、アンインストールするたびに依存関係などを自動修正される
- 私達が手書きで修正することはほぼ無いそうです
$ poetry run python main.py