0
1

Poetryで仮想環境を作ろう!Python開発をもっと快適に

Last updated at Posted at 2024-06-09

Poetryで快適Python開発ライフ!依存関係と仮想環境の管理が超ラク!

Pythonでアプリ開発していると、依存パッケージと仮想環境の管理って面倒ですよね。
Poetryを使えば、そんな悩みともサヨナラできちゃいます!

Poetryとは

Poetryは、Pythonのパッケージ管理と仮想環境構築を統合的に行えるツールなんです。つまり、依存関係管理、仮想環境構築、ビルド、パッケージングを統合的におこなうことができるツールで、プロジェクトで使うパッケージをpyproject.tomlってファイルで管理して、コマンド一発で仮想環境の構築からパッケージのインストールまでできちゃう優れものなのです!

pyproject.tomlが全ての基本!

pyproject.tomlは、Poetryの設定ファイルで、プロジェクトの情報を一箇所に集約できるんです。こんな感じで書くよ。

[tool.poetry]
name = "my-awesome-project"
version = "0.1.0"
description = "超かっこいいプロジェクト"
authors = ["あなたの名前 <you@example.com>"]

[tool.poetry.dependencies]
python = "^3.9"
requests = "^2.28.1"

[tool.poetry.dev-dependencies]
pytest = "^7.1.2"

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
  • プロジェクトの基本情報
  • 本番用の依存パッケージ
  • 開発用の依存パッケージ
  • ビルド設定

これだけ書けば、プロジェクトの青写真は完成!

Poetryのインストール方法

まずはpipでPoetryをインストールしましょう。

pip install poetry

新しいプロジェクトの始め方

新しいプロジェクトを始めるには、poetry newコマンドを叩くだけ!

poetry new my-awesome-project

既存のプロジェクトにPoetryを導入する場合

既存のプロジェクトにPoetryを導入する場合は、プロジェクトのルートディレクトリでpoetry initを実行。

poetry init

質問に答えていくと、pyproject.tomlが自動生成されます。

Poetry環境に新しいパッケージを追加

Poetry環境に新しいパッケージを追加したいときは、poetry addコマンドを使います。

poetry add requests

開発用のパッケージを追加したい場合は、--devオプションを付ければOKです。

poetry add --dev pytest

仮想環境の構築とパッケージのインストール

仮想環境の構築とパッケージのインストールするには、poetry installコマンドを実行します。これで仮想環境の構築とパッケージのインストールが一気に完了できます。

poetry install

仮想環境でコマンドを実行する

仮想環境でコマンドを実行するときは、poetry runコマンドを使えば、仮想環境内でコマンドを実行できます。

poetry run python script.py

仮想環境のシェルに入るとき

仮想環境のシェルに入るときは、poetry shellコマンドを実行すれば、仮想環境のシェルに入れます。

poetry shell

Poetryを使うメリット

  • pyproject.tomlで依存関係を一元管理できる
  • 仮想環境の構築とパッケージのインストールが自動化される
  • poetry buildでパッケージのビルドが簡単
  • poetry publishでPyPIへの公開もラクラク
  • 依存関係の競合も自動で解決してくれる

まとめ

Poetryを使えば、Pythonプロジェクトの依存関係と仮想環境の管理が超ラクになります!
この記事を参考に、ぜひPoetryを導入してみてくださいね!

関連記事

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1