Как загрузить чистый пакет Python в PyPI?

Какую волшебную команду "python setup.py some_incantation_here" выгрузить пакет в PyPI в форме, которую можно загрузить, чтобы получить исходный пакет в исходной форме?

У меня есть пакет с некоторым источником и несколькими файлами изображений (как package_data). Если я делаю "setup.py sdist register upload", файл .tar.gz исключает файлы изображений. Если я делаю "setup.py bdist_egg register upload", яйцо содержит изображения, но исключает файл setup.py. Я хочу получить загруженный файл, который является всего лишь моим проектом - иначе < setup.py the_whole_freaking_thing register upload ".

Возможно, лучший способ сделать это - вручную tar.gz создать каталог проекта и загрузить его с помощью веб-интерфейса PyPI?

Предостережение. Я стараюсь не хранить простой проект, который я только что создал в моем SVN-репо, а также в PyPI. Кажется, это пустая трата времени, чтобы отслеживать ее историю и файлы в двух местах.

Ответ 1

Когда вы выполняете команду "sdist", то, что контролирует список включенных файлов, является ваш файл "MANIFEST.in", расположенный рядом с "setup.py", но не все, что вы указали в "package_data". Это как-то связано с шизофреническим характером решений для упаковки Python сегодня; "sdist" работает от distutils в стандартной библиотеке, а "bdist_egg" управляется setuptools.

Чтобы решить эту проблему, попробуйте создать файл MANIFEST.in рядом с вашим файлом setup.py и нарисуйте его следующим образом:

include *.jpg

Конечно, я вижу, что ваши "файлы изображений" - это фактические изображения, а не образы дисков или образы ISO или что-то еще; вам, возможно, придется отрегулировать вышеприведенную линию, если я догадался неправильно! Но проверьте Задание файлов для распространения в документации distutils и посмотрите, не можете ли вы получить эти файлы, появляющиеся в вашем .tar. gz источник распространения! Удачи.

Ответ 2

Это действительно легко, если вы используете специальный инструмент для публикаций. Он работает в вашем браузере, без каких-либо особых зависимостей.

Попробуйте эту библиотеку для этого https://github.com/markolofsen/how_to_upload_package_to_pypi