Ich habe zwei Pakete mit einer gemeinsamen Hierarchie. Etwas wie:Setuptools: Installieren von Paketen mit überlappenden Layouts
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
wie folgt aussieht: 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()
)
würde Ich mag org.team.foo
und org.team.bar
als unterschiedliche Verteilungen verteilen. Ich weiß, der empfohlene Weg ist, org
und team
Namespace-Verzeichnisse zu machen. Leider erkennt pylint
, das ist ein großer Teil unserer kontinuierlichen Integration Workflow nicht Namespace-Pakete. Ich frage mich, ob ich diese separat verteilen und übereinander installieren kann. Ich habe versucht, diese (sudo pip install foopack && sudo pip install barpack
) und es scheint, die folgende in das Installationsverzeichnis zu produzieren:
/usr/local/lib/python2.7/dist-packages/
org/
__init__.py
team/
__init__.py
foo/
__init__.py
baz.py
bar/
__init__.py
quz.py
Dies scheint wie erwartet zu funktionieren, mit der Ausnahme, dass, wenn ich foopack
deinstallieren, org/__init__.py
und org/team/__init__.py
werden ebenfalls deinstalliert. Dies ist nichts, was ich in meinem Workflow erwarte, also bin ich damit einverstanden.
Gibt es noch andere Nachteile? Gibt es etwas, das ich nicht in Erwägung ziehe, oder eine Alternative, die ich in Betracht ziehen sollte?