Какую структуру каталогов вы хотите внутри архива дистрибутива? Так же, как ваша существующая структура?
Вы можете упаковать все на один каталог выше (code
в вашем примере) с этим измененным setup.py:
from distutils.core import setup
setup(
name = 'MyPackage',
description = 'This is my package',
packages = ['mypackage', 'mypackage.subpackage'],
version = '1',
url = 'http://www.mypackage.org/',
author = 'Me',
author_email = 'me@here.com',
script_name = './build/setup.py',
data_files = ['./build/setup.py']
)
Вы запустили бы это (в каталоге code
):
python build/setup.py sdist
Или, если вы хотите сохранить dist
внутри сборки:
python build/setup.py sdist --dist-dir build/dist
Мне нравится структура каталогов, которую вы пытаетесь найти. Я никогда не думал, что setup.py
достаточно особенный, чтобы гарантировать нахождение в папке с корневым кодом. Но, нравится вам это или нет, я думаю, что именно этого ожидают пользователи вашего дистрибутива. Поэтому неудивительно, что вы должны обмануть distutils, чтобы сделать что-то еще. Параметр data_files
- это хак, чтобы вставить ваш setup.py в дистрибутив в том же месте, где вы его нашли.