💬
Pythonのパッケージの基本的なディレクトリ構成
Pythonのディレクトリ構成は、プロジェクトやライブラリによって異なる場合がありますが、一般的な構成を以下に示します。
基本的なディレクトリ構成
プロジェクト名/
│
├─ __init__.py
├─ main.py (メインの実行ファイル)
│
├─ パッケージ1/
│ ├─ __init__.py
│ ├─ モジュール1.py
│ └─ モジュール2.py
│
├─ パッケージ2/
│ ├─ __init__.py
│ ├─ モジュール3.py
│ └─ モジュール4.py
│
├─ tests/ (テスト用ディレクトリ)
│ ├─ __init__.py
│ ├─ test_モジュール1.py
│ └─ test_モジュール2.py
│
└─ setup.py (パッケージング用スクリプト)
-
__init__.py
ファイルは、ディレクトリがPythonパッケージであることを示すための空ファイルです。 -
main.py
は、プロジェクトのエントリーポイントであり、実行可能なスクリプトです。 - 各パッケージディレクトリには、関連するモジュールが含まれています。
-
tests
ディレクトリには、各モジュールのテストケースが含まれています。 -
setup.py
は、Pythonパッケージのインストールと配布のためのスクリプトです。
各ファイルのサンプルコード
main.py:
from パッケージ1 import モジュール1, モジュール2
from パッケージ2 import モジュール3, モジュール4
if __name__ == "__main__":
モジュール1.関数1()
モジュール2.関数2()
モジュール3.関数3()
モジュール4.関数4()
パッケージ1/モジュール1.py:
def 関数1():
print("モジュール1の関数1が実行されました。")
パッケージ1/モジュール2.py:
def 関数2():
print("モジュール2の関数2が実行されました。")
パッケージ2/モジュール3.py:
def 関数3():
print("モジュール3の関数3が実行されました。")
パッケージ2/モジュール4.py:
def 関数4():
print("モジュール4の関数4が実行されました。")
tests/test_モジュール1.py:
import unittest
from パッケージ1 import モジュール1
class Testモジュール1(unittest.TestCase):
def test_関数1(self):
# ここにテストケースを記述してください。
pass
tests/test_モジュール2.py:
import unittest
from パッケージ1 import モジュール2
class Testモジュール2(unittest.TestCase):
def test_関数2(self):
# ここにテストケースを記述してください。
pass
setup.py:
from setuptools import setup, find_packages
setup(
name="プロジェクト名",
version="0.1.0",
packages=find_packages(),
install_requires=[
# 依存パッケージを記述してください。
],
entry_points={
"console_scripts": [
"プロジェクト名 = プロジェクト名.main:main",
],
},
)
Discussion