Питоновские пакеты отличный способ повторного использования кода. Если один и тот же код вы уже в третий раз копируете в очередной проект, самое время вынести этот код в отдельный модуль. А еще лучше будет собрать питоновский пакет, который потом будет устанавливаться одной командой.


Например если мы выложили пакет на github, то установить его можно так (django-cleanup в данном случае пример названия пакета):


pip install -e git+git://github.com/un1t/django-cleanup.git#egg=django-cleanup

А если мы залили его на pypi.python.org, то установка будет еще проще:


pip install django-cleanup

Структура пакета


Рассмотрим структуру простого пакета на примере django-cleanup.


django_cleanup/  # папка с модулем
    __init__.py
    models.py
MANIFEST.in 
README.markdown
setup.py

setup.py — отвечает за сборку и установку пакета. Обязательные поля — name, version и url. Можно смело копировать пример в свой пакет, заменив нужные значения. Подробнее об этом файле можно прочитать в документации.


#!/usr/bin/env python
# -*- coding: utf-8 -*-

from setuptools import setup, find_packages

setup(
    name     = 'django-cleanup',
    version  = '0.1.5',
    packages = find_packages(),
    requires = ['python (>= 2.5)', 'django (>= 1.3)'],
    description  = 'Deletes old files.',
    long_description = open('README.markdown').read(), 
    author       = 'Username',
    author_email = 'Username@gmail.com',
    url          = 'https://github.com/un1t/django-cleanup',
    download_url = 'https://github.com/un1t/django-cleanup/tarball/master',
    license      = 'MIT License',
    keywords     = 'django',
    classifiers  = [
        'Environment :: Web Environment',
        'Framework :: Django',
        'Intended Audience :: Developers',
        'Programming Language :: Python',
    ],
)

MANIFEST.in — показывает какие дополнительно файлы должны быть включены в дистрибутив, в нашем случае это README.markdown.


include README.markdown

README.markdown — надо сказать что в питоне принято писать ридми в формате RST, т.е. в идеале должно быть README.rst, но мне markdown как-то привычней.


Проверка пакета


После того как создали вышеуказанню структуру пакета неплохо бы проверить, будет ли вообще этот пакет устанавливаться. Ведь можно допустить элементарные синтаксические или другие ошибки. Например все это у нас будет храниться в папке $HOME/dev/lib/django-cleanup/

Соотвественно мы можем установить наш пакет так


pip install -e $HOME/dev/lib/django-cleanup/

и удалить


pip uninstall django-cleanup

Загрузка на PYPI


Если у вас еще нет учетной записи на pypi.python.org, вам нужно зарегистрироваться.


Регистрируем пакет:


python setup.py register

Собираем дистрибутив и загружаем его:


python setup.py sdist upload

Если все прошло гладко то, после этого уже можно ставить свой пакет через pip или easy_install.


Если что-то не сработало или пошло не так, берите любой пакет с того же pypi и смотрите как он устроен.



http://ishalyapin.ru/собираем-питоновский-пакет-и-выклады/

Profile

uzverss: (Default)
uzverss

December 2024

S M T W T F S
12345 67
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 25th, 2025 03:54 pm
Powered by Dreamwidth Studios