Чтобы создать пакет в Python, нужно:
__init__.py внутри этой директории (он может быть пустым). Этот файл указывает Python, что директория является пакетом..py) внутри директории пакета.__init__.py).Пример:
    my_package/
    ├── __init__.py
    ├── module1.py
    └── submodule/
        ├── __init__.py
        └── module2.py
  
Создание пакета в Python – это способ организации модулей кода в иерархическую структуру каталогов, что улучшает повторное использование и организацию кода.
Вот шаги по созданию пакета:
my_package.__init__.py: Этот файл необходим в каждом каталоге пакета (и подпакета), чтобы Python распознал его как пакет.  __init__.py может быть пустым, но также может содержать код инициализации для пакета (например, импорт часто используемых модулей)..py, содержащие ваш код. Например, module1.py и module2.py.__init__.py. Например, my_package/sub_package/__init__.py и my_package/sub_package/module3.py.Пример структуры каталогов:
    
my_package/
├── __init__.py
├── module1.py
├── module2.py
└── sub_package/
    ├── __init__.py
    └── module3.py
    
  
  Использование пакета:
Чтобы использовать пакет, его нужно импортировать в ваш код. Существует несколько способов импорта:
import my_package.module1:  Импортирует модуль module1 из пакета my_package.  Для доступа к функциям и классам в module1 используйте my_package.module1.function_name().from my_package import module1:  Импортирует модуль module1 из пакета my_package.  Для доступа к функциям и классам в module1 используйте module1.function_name().from my_package.module1 import function_name:  Импортирует конкретную функцию function_name из модуля module1.  Для доступа к функции используйте function_name().from my_package import *:  Импортирует все имена, определенные в файле __init__.py пакета.  Важно:  Этот способ импорта не рекомендуется, так как он может привести к загрязнению пространства имен и конфликтам имен.  Лучше явно импортировать необходимые модули и функции.Пример кода (my_package/module1.py):
    
def say_hello(name):
  return f"Hello, {name}!"
    
  
  Пример кода (использование пакета):
    
import my_package.module1
message = my_package.module1.say_hello("World")
print(message)  # Output: Hello, World!
from my_package import module1
message = module1.say_hello("Another World")
print(message)  # Output: Hello, Another World!
    
  
  В заключение: Создание пакета позволяет структурировать код, делать его более читаемым и поддерживаемым, а также упрощает повторное использование кода в различных проектах.