Python setup.py: как получить find_packages () для идентификации пакетов в подкаталогах - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь создать файл setup.py, в котором find_packages () рекурсивно находит пакеты.В этом примере foo, bar и baz - это все модули, которые я хочу установить и которые доступны по пути python.Например, я хочу быть в состоянии сделать import foo, bar, baz.bar-pack и foo-pack - это просто обычные каталоги, отличные от python, которые будут содержать различные файлы поддержки / каталоги (такие как тесты, файлы README и т. Д., Специфичные для соответствующего модуля).

├── bar-pack
│   └── bar
│       └── __init__.py
├── baz
│   └── __init__.py
├── foo-pack
│   └── foo
│       └── __init__.py
├── setup.py

Затем скажите, что setup.py выглядит следующим образом:

from setuptools import setup, find_packages
setup(
    name="mypackage",
    version="0.1",
    packages=find_packages(),
)

Однако, когда я запускаю python setup.py install или python setup.py sdist, идентифицируется только каталог baz ив упаковке.

Я могу еще больше упростить его и выполнить следующую команду, но, опять же, идентифицирован только baz.

python -c "from setuptools import setup, find_packages; print(find_packages())"
['baz']

Знаете ли вы, как я могу расширить путь поиска (или вручную прописать путь поиска) для find_packages ()?

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 30 января 2019

Setuptools 'find_packages поддерживает ключевое слово where ( docs ) и возвращает обычный старый список.Вы можете использовать это:

setup(
    ...
    packages=find_packages() + find_packages(where="./bar-pack") + find_packages(where="./foo-pack")
)

Или вы можете просто перечислить их вручную.

...