コピペ用サンプル

setup.py

import setuptools
setuptools.setup(name="tyobata_package",version="1.0.0",packages=setuptools.find_packages())

init.py

from fileA import classA as class_a
from fileB import classB as class_b

#ここにこのフォルダーに定義しているクラス名を列挙する
__all__ = ['class_a', 'class_b']

パッケージ化とインストール

開発者モードでインストール

python setup.py develop

wheelの作成

python setup.py bdist_wheel

詳細は以下から

プロジェクトのパッケージングと配布 — Python Packaging User Guide ドキュメント

setup.py の詳細内容

import setuptools
# ReadMe.md取得のサンプル================================
import pathlib
here = pathlib.Path(__file__).parent.resolve()
long_description = (here / 'README.md').read_text(encoding='utf-8')
#================================================
setuptools.setup(
	name="パッケージ名",#必須
	version="バージョン(PEP 440に準拠)",#必須
	author="著者",#オプション
	author_email="著者のメールアドレス",#オプション
	description="1行概要",#オプション
	long_description="1行以上の概要(ReadMe的な)",#オプション
	long_description_content_type="text/markdown(long_descriptionがmarkdownであることを示す)",#オプション
	url="プロジェクトのメインホームページ",#オプション
	packages=setuptools.find_packages(),#必須 ※3
	classifiers=[
		"Programming Language :: Python :: 3.8.5",
		"License :: OSI Approved :: MIT License",
		"Operating System :: OS Independent",
	],#オプション ※1
keywords='プロジェクトのキーワードを入力,PiPy用?',#オプション
package_dir={'': 'src'},  #オプション ※2
python_requires='サポートしているPythonのバージョンを指定できる',#オプション ※4
install_requires=['依存している他のパッケージ'],#オプション ※10
	extras_require={
		'dev': ['check-manifest'],
		'test': ['coverage'],
	},#オプション ※5
package_data={'sample': ['package_data.dat'],},#オプション ※6
data_files=[('my_data', ['data/data_file'])],#オプション ※7
	entry_points={'console_scripts': ['sample=sample:main',],},#オプション ※8
	project_urls={'Bug Reports':'プロジェクトに',
								'Funding':'関連する追加の',
								'Say Thanks!':
								'URLをdictとして',
								'Source': 'リストアップする',
	},#オプション ※9
)

※1 classifiers

PiPy用?ユーザー側でプロジェクトの分類・検索用のもの。詳細は以下

*https://pypi.org/classifiers/*

※2 package_dir

ソースがプロジェクトのルート以下のサブディレクトリにある時(ex:src/.) の場合は package_dir の引数を指定する。