Здесь мой урезанный setup.py script с удалением ненулевого кода:
#!/usr/bin/env python
from distutils.core import setup
from whyteboard.misc import meta
setup(
name = 'Whyteboard',
version = meta.version,
packages = ['whyteboard', 'whyteboard.gui', 'whyteboard.lib', 'whyteboard.lib.pubsub',
'whyteboard.lib.pubsub.core', 'whyteboard.lib.pubsub.utils', 'whyteboard.misc'],
py_modules = ['whyteboard'],
scripts = ['whyteboard.py'],
)
MANIFEST.in:
include *.txt
include whyteboard-help/*.*
recursive-include locale *.mo
recursive-include images *.png
Когда я запускаю "python setup.py install sdist", я получаю приятный .tar.gz с корневой папкой "whyteboard-0.41", с внутренними папками/images/и whyboardboard-help/folders. Это также имеет мою whyteboard.py script, которая запускает мою программу из исходного пакета whyboard.
Итак:
whyteboard/
├── locale/
├── images
├── whyteboard-help/
├── whyteboard/
│ ├── __init__.py
│ └── other packages etc
├── whyteboard.py
├── README
├── setup.py
└── CHANGELOG
Это отражает источник моей программы, как все должно быть и правильно.
Однако, когда я запускаю "python setup.py install", ни один из моих файлов данных не написан - только исходный пакет "whyteboard", а whyteboard.py помещается в /usr/local/lib/python 2.6/dist -packages/.
В идеале, мне бы хотелось, чтобы одна и та же структура каталогов была создана в файле .tar.gz, который будет создан в dist-пакетах, так как моя программа рассчитывает на поиск ее ресурсов.
Как я могу получить "установить" для создания этой структуры каталогов? Насколько мне известно, кажется, что я игнорирую мой файл манифеста.