setup.py・とは?初心者でも分かる使い方と基礎ガイド共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
setup.py・とは?初心者でも分かる使い方と基礎ガイド共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


setup.py・とは?初心者でも分かる使い方と基礎ガイド

このページでは setup.py が何なのか、なぜ必要なのかを丁寧に解説します。Python の世界には「パッケージ」という考え方があり、パッケージを配布したり導入したりするときに setup.py が重要な役割を果たします。コードを書くだけではなく、公開する側の準備も学べるので、将来のプロジェクトに役立ちます。

setup.pyとは何か

setup.py は、パッケージに関する情報をまとめた「指示書」のようなファイルです。主に setuptools というライブラリと組み合わせて使います。かつては distutils が使われていましたが、現代では setuptools が主流です。

主な役割と仕組み

setup.py の中には setup() という関数を呼ぶコードがあります。ここにパッケージの名前やバージョン、説明、含まれるファイル、依存関係などを渡します。実行すると、パッケージを作成したり、配布用のアーカイブを作ったりできます。

基本的な書き方の例

以下は最も基本的な形です。プロジェクトごとに内容は変わります。

from setuptools import setup, find_packages

setup(

name="my_package",

version="0.1.0",

description="サンプルのパッケージ",

packages=find_packages(),

long_description="ここに長めの説明を入れる",

install_requires=[],

)

setup.pyを使ってパッケージを作る手順

1つ目のステップは、setup.py を作成することです。次に、コマンドラインでパッケージの配布物を作成します。一般的には次のようなコマンドを実行します。

python setup.py sdist

このコマンドはソースコードの配布用アーカイブを作成します。パッケージを wheel 形式で作る場合は次のコマンドを使います。

python setup.py bdist_wheel

ただし現代の開発現場では pyproject.toml の導入が進んでおり、setup.py だけに頼らない方法が増えています。pyproject.toml によってビルドツールを統一的に指定するのが一般的です。学習の初期段階では setup.py の基本を理解しておくと、後で pyproject.toml の仕組みを学ぶときに役立ちます。

setup.pyの基本項目を表で整理

項目説明
nameパッケージの名前。配布時の識別子になります
versionパッケージのバージョン番号。初回は 0.1.0 などがよく使われます。
description短い説明。PyPI などで表示される情報の一部です。
packages含まれるモジュールの集合。find_packages() を使うと自動で検出してくれます。
install_requiresこのパッケージを使うときに必要な他のパッケージのリスト

まとめとポイント

setup.py は Python のパッケージ配布を動かす重要なファイルです。作成の手順や基本的な書き方を理解すると、他の人に自分のコードを公開するときに役立ちます。一方で、最新の開発現場では pyproject.toml の利用が拡大しているため、長期的には 新しい仕組みを学ぶこと が大切です。まずは setup.py の基本構造を覚え、実際に小さなサンプルを作って動かしてみましょう。


setup.pyの同意語

setup.py ファイル
Python の setuptools によるパッケージの設定やビルド情報を記述する、名前が setup.py のファイル。
セットアップスクリプト
パッケージを構築・配布するためのスクリプトで、一般には setup.py を指す表現。
setup script
英語表現。Python でパッケージの設定とビルド手順を定義するスクリプト
セットアップ用スクリプト
セットアップ作業を実行する Python スクリプト。
パッケージ設定ファイル
パッケージの名前、バージョン、依存関係などのメタデータとビルド情報を定義するファイル。
ビルドスクリプト
パッケージをビルド(作成)する手順を記述したスクリプト。
パッケージングスクリプト
パッケージを配布可能な形にまとめる処理を記述したスクリプト。
配布用メタデータファイル
パッケージの作者、バージョン、説明、著作権などの情報(メタデータ)を定義するファイル。
メタデータ定義ファイル
パッケージの基本情報を定義するファイル。
setuptools 設定ファイル
setuptools で使う設定を記述するファイル。
セットアップ設定ファイル
セットアップの設定項目をまとめたファイル。
Python パッケージの設定ファイル
Python パッケージの名称・版・依存関係などの設定を記述するファイル。

setup.pyの対義語・反対語

teardown.py
セットアップの逆操作を想定したファイル名。環境のクリーンアップや後片付けを自動化する処理を表します。
cleanup.py
セットアップ後の不要ファイルの削除や環境整理を自動化する処理を指します。セットアップの“後始末”を担う反対概念です。
uninstall.py
インストール済みパッケージをアンインストールする処理を行うスクリプト。setup.pyが行う“設定・配置”に対して、反対の作業を指します。
revert_setup.py
セットアップによって加えられた変更を元に戻す、設定の取り消しを行うスクリプト。設定を“撤回”するイメージです。
disable_setup.py
setup機能を無効化する設定・処理を行うスクリプト。セットアップを使わない状態を作る意図の名称です。
undo_setup.py
セットアップを取り消す、元に戻す作業を表すファイル名。実質的な反対操作を示します。
no_setup.py
setup処理を実行しない状態を表すファイル名。初心者向けには“設定なし”を意味します。
pyproject.toml
setup.pyの代替として使われる現代的なパッケージ構成ファイル。PEP 517/518の文脈で、従来の setup.py の反対概念・代替として理解されます。

setup.pyの共起語

setuptools
Python のパッケージを作成・配布する際の主要ライブラリ。setup.py の機能を実装し、パッケージ情報や依存関係を定義するのが主な役割です。
distutils
古いビルドツールで、現在は非推奨。setup.py と組み合わせて使われることもありますが、代替として setuptools が一般的です。
pyproject.toml
ビルド設定を記述する現代的なファイル。ビルドバックエンドを指定し、構築環境を分離します。setup.py と併用される場面もあります。
setup.cfg
setup.py のオプションを静的に記述できる設定ファイル。コードを減らし、設定を分離して管理します。
wheel
.whl 形式のバイナリパッケージ。インストールを高速化するために使われます。
sdist
ソースディストリビューション。パッケージのソースコードを配布する形式です。
bdist_wheel
wheel を作成するビルドコマンド。setup.py から実行することが多いです。
version
パッケージのバージョン番号。例: 1.0.0。依存解決やアップデート管理に重要です。
name
パッケージの名前。PyPI での識別子として使われ、setup() に必須の情報です。
description
パッケージの短い説明。検索時の要約として表示されます。
long_description
パッケージの詳しい説明。通常は README から取得して長文を提供します。
long_description_content_type
long_description の形式を示します。例: text/markdown。
author
著者名。パッケージの作成者を表します。
author_email
著者のメールアドレス。連絡先情報として使われます。
license
ライセンス種別。例: MIT、Apache-2.0。再配布条件を示します。
classifiers
PyPI での分類情報。開発言語、ライセンス、用途などを表現します。
install_requires
実行時に必要な依存パッケージのリスト。自動でインストール対象に含まれます。
extras_require
追加機能用の依存をグループ化。例えば dev、test などを定義します。
packages
含めるパッケージのリストまたは find_packages の出力。
find_packages
パッケージを自動で検出する関数。setup の packages 指定を簡略化します。
include_package_data
MANIFEST.in で指定したデータファイルをパッケージに含めるかどうか。
package_data
パッケージ内部に含める任意のデータファイルを定義します。
data_files
パッケージ外の追加ファイルをインストール時に配置します。
scripts
古い方法での実行可能スクリプトの指定。現在は console_scripts が推奨です。
entry_points
プラグインやコマンドを登録する仕組み。エコシステム拡張に用いられます。
console_scripts
コマンドラインで実行するスクリプトを登録します。最も一般的な CLI 配布形態です。
py_modules
単一の .py ファイルをモジュールとして含める場合の設定。
zip_safe
ZIP から直接実行可能かどうか。True/False で指定します。
python_requires
サポートする Python バージョンを指定します。例: >=3.7。
README
長い説明のソースとして使われることが多いファイル名(README.md など)。
MANIFEST.in
sdist に含めたい追加ファイルを指示するファイル。
license_files
同梱するライセンス関連ファイルを指定します。
build-system
pyproject.toml のセクション。ビルドバックエンドと依存を定義します。
project_urls
パッケージの関連リンクを追加するセクション。

setup.pyの関連用語

setup.py
Pythonパッケージのビルド・インストール用スクリプト。setuptoolsを使ってメタデータを定義し、sdistやbdist_wheelの作成、インストール時の挙動を管理します。
setuptools
Pythonのパッケージ作成ツール。setup()関数を用いてメタデータや依存関係、ビルドオプションを指定し、パッケージを配布可能な形に組み立てます。
distutils
Python標準ライブラリの旧式パッケージ作成ツール。現在は非推奨で、setuptoolsが推奨されます。
pyproject.toml
ビルド設定をまとめるファイル。build-systemセクションで利用するビルドバックエンドを指定します。
setup.cfg
setup.pyの代わりや補助として、メタデータや設定を静的に記述する設定ファイル。
MANIFEST.in
sdist作成時に含める追加ファイルを指定する指示ファイル。データファイルの取り扱いを制御します。
sdist
Source distribution。ソースコードと必要なファイルを含んだ配布形式で、プラットフォーム非依存で配布可能。
bdist_wheel
Wheel形式のバイナリ配布。事前ビルド済みパッケージでインストールを高速化します。
wheel
Wheelファイル(.whl)は公式な配布形式。pipでのインストールが高速・安定します。
install_requires
依存パッケージの列挙。パッケージをインストール時に自動的に解決します。
extras_require
追加の依存関係をカテゴリ別に定義。例: dev、tests、docs など。
packages
含めるPythonパッケージのリスト。自動検出機能でディレクトリツリーを包みに含めます。
include_package_data
パッケージにデータファイルを含めるかの設定。MANIFEST.inと連携します。
package_data
特定のパッケージに含めるデータファイルを指定します。
data_files
パッケージ外の追加ファイルを配布に含める設定。
zip_safe
パッケージをzip化して配布しても安全かどうかを示す設定。
version
パッケージのバージョン。PEP 440準拧が推奨。
name
パッケージの正式名称。PyPIでの識別子。
description
短いパッケージの説明文
long_description
長い説明。READMEをそのまま利用することが多いです。
long_description_content_type
long_descriptionのマークアップ形式(text/markdown など)。
python_requires
ポートするPythonの最低版や範囲を指定(例: >=3.8)。
classifiers
パッケージのカテゴリや用途を表すPEP 301準拠の文字列リスト。
py_modules
単一のPythonモジュールファイルを配布する場合に指定。
entry_points
コンソールスクリプトやプラグインのエントリポイントを定義。
console_scripts
entry_pointsの一部で、コマンド名と実行関数を結びつけ、CLIツールを提供します。
setup_requires
setup()実行前に必要なビルド依存を定義。現代では限定的な用途のみ推奨。
tests_require
テスト実行時に必要な依存パッケージを列挙。
build-backend
ビルドを実行するバックエンド。例: setuptools.build_meta。
build-system
pyproject.toml内のセクション。build-backendとrequiresを指定します。
build_requires
build-systemのrequiresに列挙されるビルド依存の別表現(一般にはrequiresと同義)。
PEP 517
Pythonパッケージのビルド方法を標準化する提案。build-backendの仕様を定義します。
PEP 518
ビルド依存をpyproject.tomlで宣言する規格。
PEP 621
パッケージのメタデータの標準化仕様。pyproject.tomlでの記述を促します。
PEP 440
Pythonパッケージのバージョニング規約。
PyPI
Python Package Indexの略。公式のパッケージ配布サイト
twine
PyPIへパッケージをアップロードするためのツール。セキュアな配布を実現します。
dist-info
インストール時に作成されるメタデータディレクトリ。METADATA・RECORDなどを含みます。
EGG-INFO
旧形式のメタデータディレクトリ。Eggパッケージの名残。
PKG-INFO
パッケージのメタデータファイル名。古い形式のメタデータファイル。
license
ライセンス情報。配布時に重要な法的情報。
license_files
ライセンスファイルを配布に含める設定。
keywords
検索性を高めるためのキーワード。PyPIのメタデータにも含まれます。

setup.pyのおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
14453viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2421viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1077viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
1043viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
937viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
907viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
844viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
840viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
799viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
789viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
722viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
708viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
600viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
578viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
576viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
552viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
521viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
500viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
481viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
479viws

新着記事

インターネット・コンピュータの関連記事