У меня есть проект Python, который нужно распространять с помощью setuptools.
Я хочу использовать функцию find_packages()
. Исходные пакеты python расположены в нескольких каталогах:
proj
+--src1
| +--pkg1
| | +-- (__init__.py and sources)
| +--pkg2
| | +-- (__init__.py and sources)
+--src2
+--pkg3
| +-- (__init__.py and sources)
+--pkg4
+-- (__init__.py and sources)
Если я использую find_packages('proj/src1')
, пакеты pkg3 и pkg4 не будут помещены в дистрибутив.
Если я использую find_packages('proj')
, пакеты не будут отображаться вообще.
Можно ли использовать несколько исходных каталогов и find_packages()
вместе?
Почему бы не составить список пакетов самостоятельно?
packages=[pkg for subdir in os.listdir('proj')
if os.path.isdir(os.path.join('proj', subdir))
for pkg in find_packages(os.path.join('proj', subdir))]
find_packages()
возвращает список. Вы можете вызвать его несколько раз и объединить списки:
find_packages('proj/src1') + find_packages('proj/src2')
Вот похожий вопрос: stackoverflow.com/questions/17155804/…