Охрана вокруг вызова setup()
обычно не видна на практике, потому что этот файл обычно не импортируется . Хорошо известно, что это установщик script , предназначенный для непосредственного выполнения.
Однако вы можете добавить охрану по указанной причине (" Я хочу использовать некоторые определенных функций в файле") и все, что находится в distutils / setuptools, все равно должно работать нормально. Для сценария setup.py
довольно необычно определять библиотечные функции внутри, поэтому вы можете спросить себя, есть ли лучший дом для таких функций, вместо того, чтобы писать их непосредственно в самом скрипте установщика.
Возможно ли это?
Да.
Запрещено?
Нет.
Обескуражен?
Отчасти основанный на мнении. Лично я бы сказал да: не одобряйте это.
Почему?
Задача setup.py
состоит в установке вашего кода из исходного кода , период Обычно это не место для других случайных задач, таких как документирование процесса сборки. Этот файл даже не будет включен в дистрибутив wheel , который, вероятно, является наиболее типичным способом развертывания кода Python в наши дни.
В качестве заключительного замечания: если и когда вы переедете к современным Python методам упаковки, использующим pyproject.toml
, с декларативной системой сборки, сценарий setup.py
не будет. Тогда вам все равно придется искать новый дом для таких вспомогательных функций.