【发布时间】:2016-04-03 21:11:30
【问题描述】:
我有两个具有共同层次结构的包。比如:
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 也会被卸载。这不是我在工作流程中所期望的,所以我可以接受。
这还有其他缺点吗?有什么我没有考虑的,或者我应该考虑的替代方案吗?
【问题讨论】:
标签: python setuptools pylint