我有兩個具有公共層次結構的包。喜歡的東西: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
被卸載也是如此。這不是我在我的工作流程中所期望的,所以我對此感到滿意。
這是否還有其他缺點?有什麼我不考慮的,或者我應該考慮的替代方案?