python setuptool多包安排

时间:2016-03-30 20:54:15

标签: python setuptools

在同一个存储库中,我想在命名空间ns.foo下构建两个包ns.barns。但经过多次尝试,似乎唯一可行的方法是将它们放在两个完全不同的目录分支中:

$ find ./
  foo/
  foo/setup.py
  foo/ns/
  foo/ns/__init__.py # __import__('pkg_resources').declare_namespace(__name__)
  foo/ns/foo
  foo/ns/foo/__init__.py
  bar/
  bar/setup.py
  bar/ns/
  bar/ns/__init__.py # __import__('pkg_resources').declare_namespace(__name__)
  bar/ns/bar/
  bar/base/bar/__init__.py

原因在于,例如,

from setuptools import setup
setup(...,packages=['ns.foo'],...)

要工作,setup.py必须与foo/中的命名空间包放在同一级别,才能找到ns.foo

有没有办法写setup.py以便我可以将目录结构折叠为:

└ ns/
└ __init__.py # __import__('pkg_resources').declare_namespace(__name__)
└ foo/
└ foo/__init__.py
└ foo/setup.py
└ bar/
└ bar/__init__.py
└ bar/setup.py

这样当我运行每个setup.py时,它会构建相应的包吗?

0 个答案:

没有答案