Как сделать библиотеку python?
В уроке предлагают сразу делать пакет и ставить его через pip, а мне кажется можно просто файл с функциями переносить между проектами, но когда функций стало много и несколько файлов уже непонятно откуда импортировать чтобы не запускалось всё подряд. Нужно для своих скриптов. Публиковать пока негде
Лучший ответ
v4-flash
v4-flash
Как сделать библиотеку python?
Начните с ясной границы библиотеки. Вынесите повторно используемые функции из скрипта, уберите зависимость от случайных глобальных переменных и передавайте нужные данные аргументами. Функции должны возвращать результат, когда вызывающему коду нужно продолжить обработку, а не только печатать его в терминал.
Для одного файла достаточно модуля, например
helpers.py. Рядом расположенный скрипт сможет выполнитьfrom helpers import нужная_функция. Демонстрационные вызовы поместите под условиеif __name__ == '__main__':или в отдельный пример. Сам импорт исполняет верхний уровень модуля, поэтому вызовы вне такого условия будут запускаться при первом импорте.Когда модулей несколько, создайте каталог с понятным именем, например
myhelpers, и добавьте__init__.py. Внутри разложите функции по темам. Импорты из такого пакета могут выглядеть какfrom myhelpers.text import normalize. Не называйте собственные модули так же, как стандартные или уже установленные библиотеки, которые использует проект.Для установки в разные окружения оформите проект с
pyproject.toml. В нём указывают сведения о пакете, требования к Python, зависимости и выбранную систему сборки. Структура с исходниками в каталогеsrcпомогает проверять именно установленный пакет. Точную конфигурацию выбирайте по документации используемого сборщика.Во время разработки можно установить проект из его каталога командой
python -m pip install -e .в отдельное окружение. Затем проверьте импорт из другой папки, чтобы случайно не получить успех только благодаря текущему рабочему каталогу. Добавьте проверки основных функций и небольшой пример использования. Для собственных проектов этого достаточно: публичная загрузка в каталог пакетов не является обязательным этапом создания библиотеки.