#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. Вау, как жаль, что это одна из первых вещей, которая приходит в голову.