У меня есть следующая структура проекта, которую я хотел бы упаковать:
├── doc
│ └── source
├── src
│ ├── core
│ │ ├── config
│ │ │ └── log.tmpl
│ │ └── job
│ ├── scripts
│ └── test
└── tools
Я хотел бы упаковать core
под src
, но исключить test
. Вот что я пробовал безуспешно:
setup(name='core',
version=version,
package_dir = {'': 'src'}, # Our packages live under src but src is not a package itself
packages = find_packages("src", exclude=["test"]), # I also tried exclude=["src/test"]
install_requires=['xmltodict==0.9.0',
'pymongo==2.7.2',
'ftputil==3.1',
'psutil==2.1.1',
'suds==0.4',
],
include_package_data=True,
)
Я знаю, что могу исключить test
с помощью файла MANIFEST.in, но я был бы рад, если бы вы могли показать мне, как это сделать с помощью setup
и find_packages
.
Обновление:
После того, как я немного поиграл, я понял, что построение пакета с python setup.py install
делает то, что я ожидал (то есть он исключает test
). Однако выдача python setup.py sdist
заставляет все включаться (то есть игнорирует мою директиву exclude). Я не знаю, является ли это ошибкой или функцией, но по-прежнему существует возможность исключения файлов в sdist
с помощью MANIFEST.in
.