Pythonのインポート文を自動整理!isortの完全ガイド

PRについて
※このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
スポンサーリンク
※このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
Pythonのインポート文を自動整理!isortの完全ガイド Tips集
Pythonのインポート文を自動整理!isortの完全ガイド
Pythonプログラミング逆引き大全

Pythonでコードを書く際、インポート文はしばしば無秩序になりがちです。

複数のライブラリやモジュールを使うプロジェクトでは、インポート文が増えていき、その順序や構造が崩れることがあります。

PEP8は、Pythonの公式スタイルガイドとして、インポート文の整列に関する明確なルールを提供していますが、手動でこれを管理するのは大変です。

そんな時に役立つのが isort です。

isortは、インポート文を自動的に整理し、PEP8に準拠したフォーマットに整えてくれるツールです。

この記事では、isortの基本的な使い方、設定オプション、そしてBlackなどの他のフォーマッタとの併用方法を紹介します。

isortを導入することで、コードの可読性が向上し、インポート文の管理が簡単になります。

ごまこ
ごまこ

import文が増えてくると管理するのも大変です!
簡単に使えるツールはありませんか?

ごまお
ごまお

それならisortを紹介しますね!
インストールは簡単ですし様々な使い方ができますよ!

isortのインストール方法

isortを使用するには、まずインストールが必要です。

以下のコマンドを使用してインストールできます。

pip install isort

このコマンドを実行すると、最新バージョンのisortがインストールされます。

インストール後、isort --version コマンドを使用してバージョンを確認し、動作が問題ないことを確認しましょう。

isort --version

isortが正常にインストールされたら、次のセクションで紹介する基本的な使用方法を試してみましょう。

コマンドラインでの基本的な使用方法

isortは、主にコマンドラインから実行することができます。

最も基本的な使い方は、特定のファイルに対してisortを実行する方法です。

isort your_script.py

このコマンドを実行すると、指定したPythonファイル内のインポート文が自動的に整理されます。

ディレクトリ全体に対するisortの適用

複数のファイルを一括で整理したい場合は、ディレクトリを指定して実行します。

現在のディレクトリにあるすべてのPythonファイルに対してisortを適用するには、以下のコマンドを使用します。

isort .

オプションの紹介

isortは多くのオプションを提供しており、使い方に応じてカスタマイズが可能です。

例えば、インポート文をチェックのみして、修正を加えないオプションもあります。

isort --check-only your_script.py

これにより、ファイルが適切に整形されているかどうか確認できます。

Pythonコード内でのisortの使用

isortはコマンドラインでの使用に加えて、Pythonコード内でも利用できます。

たとえば、動的にコードを生成したり、ファイルを操作したりする場合に便利です。

まず、isortをPythonスクリプト内でインポートします。

import isort

文字列コードの整形

文字列として与えられたPythonコードを整形する場合、isort.code メソッドを使用します。

sorted_code = isort.code("import sys\nimport os\n")
print(sorted_code)

このコードは、import osimport sys の前に並び替えます。

ファイル単位での整形

特定のファイルに対して直接isortを適用する場合は、isort.file メソッドを使います。

isort.file("path/to/file.py")

インポート文の整形確認

コードが正しく整形されているかを確認するためには、isort.check_code メソッドを使用します。

is_sorted = isort.check_code("import sys\nimport os\n")
print(is_sorted)  # True if sorted, False if not

この機能は、整形されていないインポート文がある場合にアラートを出す際に有用です。

isortの主な機能

isortは、単にインポート文を並べ替えるだけでなく、以下のような機能を提供しています。

インポート文のアルファベット順整列

isortはデフォルトで、インポート文をアルファベット順に並べ替えます。

これにより、インポート文が視覚的に整理され、検索が容易になります。

標準ライブラリ、サードパーティ、ローカルモジュールの分類

isortは、インポート文を3つのグループに自動的に分けます。

  1. 標準ライブラリ(import os など)
  2. サードパーティのライブラリ(import numpy など)
  3. ローカルモジュール(自分のプロジェクト内のモジュール)

この分離により、依存関係の管理がしやすくなります。

複数行インポートの最適化

isortは、長いインポート文を複数行に分割する場合でも、最適なフォーマットで整形します。

isortの設定オプション

isortの動作は、プロジェクトに応じてカスタマイズ可能です。

特に、設定ファイルを使用することで、一貫したコードスタイルを保つことができます。

設定ファイルとしては、pyproject.toml, .isort.cfg, setup.cfg などが使えます。

pyproject.tomlの設定例

以下は、pyproject.toml におけるisortの設定例です。

[tool.isort]
profile = "black"
line_length = 88
multi_line_output = 3

ここでは、profile = "black" によって、コードフォーマッタBlackと連携した設定がされています。

また、line_length = 88 で1行の最大長を88文字に制限し、multi_line_output = 3 で複数行インポートのスタイルを指定しています。

特殊な使用例

1行ずつのインポート

--force-single-line-imports オプションを使用すると、同じパッケージからのインポートを1行ずつに分けることができます。

isort --force-single-line-imports your_script.py

これにより、次のようにインポート文が変わります。

# Before
from mypackage import a, b, c

# After
from mypackage import a
from mypackage import b
from mypackage import c

Blackとの併用

Blackとの併用を考慮する場合、profile = "black" を設定に追加します。

この設定により、isortはBlackのコードスタイルに従ったフォーマットでインポート文を整形します。

isort使用時の注意点

依存関係のインストール

isortを実行する前に、プロジェクトの依存関係をインストールしておくことが重要です。

これにより、サードパーティのライブラリが正しく分類されます。

チーム開発での統一設定

複数人で開発を行う場合、isortの設定をチーム全体で統一することが重要です。

これにより、一貫したコードスタイルを保ち、コードレビューやマージ時のトラブルを防ぐことができます。

まとめ

isortは、Pythonのインポート文を自動的に整理し、コードの可読性を向上させる強力なツールです。

標準ライブラリ、サードパーティのライブラリ、ローカルモジュールを分類して整理することで、コードの見通しが良くなり、PEP8に準拠したコードスタイルが維持できます。

Blackなどの他のツールと組み合わせることで、さらに一貫性のあるフォーマットを実現できます。

isortを活用して、クリーンで管理しやすいPythonコードを保つことができるでしょう。

このサイトのトップページへは以下へアクセス!

Python自動処理の教科書
Tips集
ゴマフリーダムをフォローする

コメント

達人に学ぶDB設計 徹底指南書

最短コースでわかる ディープラーニングの数学

あたらしい機械学習の教科書 第3版

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

タイトルとURLをコピーしました