Ich versuche, ein Paket mit Unterpaketen in Python zu setzen. Hier ist die Baumstruktur, die ich im Moment haben:Richtiger Weg, um Python-Paket mit Sub-Pakete zu setzen
myPackage
├── __init__.py
├── mySubPackage1
│ ├── foo2.py
│ ├── foo.py
│ └── __init__.py
├── mySubPackage2
│ ├── bar2.py
│ ├── bar.py
│ └── __init__.py
└── setup.py
Alle __init__.py
leer sind. Hier ist meine setup.py
:
from distutils.core import setup
if __name__ == "__main__":
setup(
name='myPackage',
package_dir = {
'mySubPackage1': 'mySubPackage1',
'mySubPackage2': 'mySubPackage2'},
packages=['mySubPackage1', 'mySubPackage2'],
)
Das Problem ist, dass, wenn ich laufe python setup.py install
von myPackage
, die Unter Pakete installiert sind in dist-packages
:
/usr/local/lib/python2.7/dist-packages/mySubPackage1
/usr/local/lib/python2.7/dist-packages/mySubPackage2
Ich denke, das Problem ist mein setup.py
, aber Ich weiß nicht, wie ich das beheben soll. Sollte es im übergeordneten Verzeichnis von myPackage
sein? Wenn ja, wie funktioniert es, wenn ich das Paket in eine zip
unter Verwendung python setup.py sdist
verpacke?
Kopieren FoxDot Kommentar: Sie hatten Recht zu nisten das Paket wie Sie haben dies in der Antwort getan, aber Sie müssen keine Pfade mit dem Schlüsselwort package_dir angeben, wenn Ihre Ordnernamen bereits mit den Unterpaketen usw. übereinstimmen. Es ist viel besser erklärt [hier] (https://docs.python.org/2/ distutils/examples.html # pure-python-Verteilung nach Paket). – Richard