我有以下项目结构我想打包:
??? 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指令).我不知道它是一个bug还是一个功能,但仍有可能在sdist
使用时排除文件MANIFEST.in
.