我有两个具有公共层次结构的包。喜欢的东西:Setuptools:安装具有重叠布局的包
org.team.foo
:
org/
__init__.py
team/
__init__.py
foo/
__init__.py
baz.py
org.team.bar
:
org/
__init__.py
team/
__init__.py
bar/
__init__.py
qux.py
setup.py
看起来是这样的: org.team.foo
:
from setuptools import setup, find_packages
setup(name='foopack',
version='1.0',
packages=find_packages()
)
org.team.bar
:
from setuptools import setup, find_packages
setup(name='barpack',
version='1.0',
packages=find_packages()
)
我想分发org.team.foo
和org.team.bar
不同的分布。我知道推荐的方法是制作org
和team
命名空间目录。不幸的是,pylint
是我们持续集成工作流程的重要组成部分,它不识别名称空间包。我想知道如果我可以分开分发这些并将它们安装在彼此之上。我想这(sudo pip install foopack && sudo pip install barpack
),它似乎产生在安装位置如下:
/usr/local/lib/python2.7/dist-packages/
org/
__init__.py
team/
__init__.py
foo/
__init__.py
baz.py
bar/
__init__.py
quz.py
这似乎是工作如预期,但如果我卸载foopack
,org/__init__.py
和org/team/__init__.py
被卸载也是如此。这不是我在我的工作流程中所期望的,所以我对此感到满意。
这是否还有其他缺点?有什么我不考虑的,或者我应该考虑的替代方案?