Какова минимальная структура каталогов для работы с настройками one_file.py?

#python #pip #command-line-interface #software-design

Вопрос:

one_file.py содержит некоторые общие функции, классы и a main() .

Я хотел бы сделать его pip доступным для установки с помощью скрипта командной строки, который вызывает main() функцию.

Что такое структура каталогов и setup.py что для этого нужно?

Ответ №1:

Вам это сойдет с рук только с помощью a setup.py и вашего модуля-никаких дополнительных каталогов. В вашем setup.py обычном использовании setup(..., py_modules=['one_file'], ...) (возможно, вы захотите проверить точное написание). Для установки скрипта вы можете использовать точку console_scripts входа:

 from setuptools import setup setup(  name='one-file',  version='1.0',  py_modules=['one_file'],  entry_points={'console_scripts': ['one-file = one_file:main']} )  

Комментарии:

1. Один прекрасный момент, мне нравится делать from setuptools import find_packages , а затем передавать packages=find_packages() вместо жесткого кодирования py_modules=... внутри вызова setup(...) .

2. @TaylorEdmiston Первоначальный вопрос, хотя и плохо сформулированный, касался распространения отдельных модулей, которые не входят в пакет. find_packages() явно просто возвращает пакеты.

3. Хорошая мысль. Этот вопрос находится в верхней части первой страницы для запроса Google «минимальный python setup.py». По общему признанию, я пропустил эту часть вопроса ОП, но этот ответ также был полезен для краткого ознакомления с минимальным setup.py также для пакета с одним файлом.

4. Вау, как жаль, что это одна из первых вещей, которая приходит в голову.