Я пытаюсь установить пакет с подпакетами в python. Вот структура дерева, что у меня есть на данный момент:Правильный способ установки пакета python с подпакетами
myPackage
├── __init__.py
├── mySubPackage1
│ ├── foo2.py
│ ├── foo.py
│ └── __init__.py
├── mySubPackage2
│ ├── bar2.py
│ ├── bar.py
│ └── __init__.py
└── setup.py
Все __init__.py
пусты. Вот мой setup.py
:
from distutils.core import setup
if __name__ == "__main__":
setup(
name='myPackage',
package_dir = {
'mySubPackage1': 'mySubPackage1',
'mySubPackage2': 'mySubPackage2'},
packages=['mySubPackage1', 'mySubPackage2'],
)
Проблема заключается в том, что, когда я бегу python setup.py install
от myPackage
, то суб пакеты устанавливаются в dist-packages
:
/usr/local/lib/python2.7/dist-packages/mySubPackage1
/usr/local/lib/python2.7/dist-packages/mySubPackage2
Я думаю, проблема в том, что я setup.py
, но Я не знаю, как это исправить? Должно ли оно находиться в родительском каталоге myPackage
? Если да, то как это работает, когда я упаковываю пакет в zip
, используя python setup.py sdist
?
Копирование комментарий FoxDot: вы были правы гнезде пакет как вы ответили, но вам не нужно указывать пути, используя аргумент ключевого слова package_dir, если имена ваших папок уже соответствуют подпакетам и т. д. Это намного лучше объяснено [здесь] (https://docs.python.org/2/ Distutils/examples.html # чисто питон-распределение-по-пакета). – Richard