JavaScriptを有効にしてください

pyproject.tomlからpip installコマンドでPythonのライブラリをインストールする

 ·   4 min read

はじめに

Pythonのプロジェクト設定ファイルpyproject.tomlに記載されたPythonのライブラリを、パッケージ管理システムpipでインストールする方法を解説します。

pyproject.tomlは、Pythonプロジェクトのメタ情報を保存するためのTOML形式の設定ファイルです。pyproject.tomlが導入された経緯についてはPEP 518に、基本的な仕様についてはPEP 621にそれぞれ記載されています。

pyproject.tomlには以下のような情報を記載できます。

  1. 使用するサードパーティ製ライブラリや、そのバージョン情報
  2. 作成したPythonパッケージの名称・バージョン情報
  3. 2.のパッケージの実行に必要なPythonのバージョン

1.を記述できるPythonの設定ファイルとしてrequirements.txtがありますが、このファイルは2.や3.を記述できる仕様になっていません(コメントとしては記述できます)。特に複数人でPythonパッケージを開発する場合、pyproject.tomlを使用して開発環境を共有できると便利です。

また、pyproject.tomlに対応したPythonパッケージ管理ツールとしてPoetryがありますが、Poetryを導入できない場合もあります。そこで本記事では、Python標準のパッケージ管理システムpipを使って、pyproject.tomlに記載されたPythonのサードパーティ製ライブラリをインストールする方法を解説します。

この記事が想定する読者

  • pipコマンドが使用できる
  • pyproject.tomlを使用して、ライブラリ情報を管理・共有したい

この記事で述べないこと

  • pyproject.tomlの詳細な仕様

検証環境

  • Python v3.11.6
  • pip v24.0
  • Windows 10 Home Ver. 22H2

パッケージのフォルダ構成

この記事では、開発するPythonパッケージが以下のフォルダ構成であるとします。

(root_directory)/
├── pyproject.toml
└── mypackage/
    ├── __init__.py
    ├── ...
    └── mymodule.py

パッケージの一番上の階層にpyproject.tomlを置きます。また、パッケージのソースコードはmypackage/フォルダ以下に置くものとします。

pyproject.tomlの記述例

pyproject.tomlの記述例を以下に示します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
[project]
name = "mypackage"
version = "0.1.0"
dependencies = [
    "numpy==1.26.2",
    "scikit-learn>=1.3.2",
]

[project.optional-dependencies]
dev = [
    "ipython~=8.17.2",
    "pylint",
]
test = [
    "pytest==7.4.3",
    "pytest-html==4.1.1",
]

[project]テーブルのname, versionには、開発するパッケージの名前とバージョン情報をそれぞれ記載します。pipでパッケージをインストールするにあたって、この2つは必須です。

さらに、dependenciesにパッケージの実行に必要なサードパーティ製ライブラリを記述します。ここでは、NumPyとScikit-learnを記載しています。バージョンを指定することも可能です。

また、[project.optional-dependencies]テーブルには、パッケージの実行に必要でないサードパーティ製ライブラリを記述できます(もちろん省略可能です)。一般的にこのテーブルに記載するライブラリは、開発者のみ使用し、パッケージのユーザは使用しないライブラリとなります。

[project.optional-dependencies]テーブルのライブラリは、dev, testなど、任意の名前の複数のキーに分けて記述できます。1つのキーに記載されたライブラリは、まとめてインストール可能です。上記の例では、以下の意図で2つのキーに分けています。

  • dev: 一般的な開発者が使用するライブラリ
  • test: テスト担当者のみ使用するライブラリ

ライブラリのインストール方法

最後に、pyproject.tomlからpipでライブラリをインストールする方法を述べます。Pythonの環境を汚したくない場合、必要に応じてvenvなどの仮想環境を作成して下さい。

まず、コマンドプロンプトまたはPowerShellを起動し、pyproject.tomlがある階層に移動します。

[project]テーブルのdependenciesに記載されたライブラリをインストールする場合、以下のコマンドを実行します。

pip install .

最後の.が必要なことに注意します。このコマンドを実行すると、pipがpyproject.tomlを自動的に探してライブラリをインストールしてくれます。

一方、[project.optional-dependencies]テーブルに記載されたライブラリをインストールする場合、以下のようなコマンドを実行します。

pip install .[dev]
pip install .[test]

.の後の角括弧の中にキーを指定します。

参考

シェアする

Helve
WRITTEN BY
Helve
関西在住、電機メーカ勤務のエンジニア。X(旧Twitter)で新着記事を配信中です

サイト内検索