Есть мнение,
что если ты пишешь на Python программу
длиннее 100 строк, то следует оформить
ее как пакет (package).
Покажу на
примере (https://github.com/vasnake/transbot)
как это сделать. Операционная система
– Linux, инструмент – консоль.
Делай раз:
подбери для пакета имя.
На
https://pypi.python.org/pypi
с помощью поиска я определил, что имя
«translitbot» пока не занято. ОК, теперь
занято.
Делай два:
папка для файлов проекта.
mkdir ~/projects/translit.bot; pushd ~/projects/translit.bot
Делай три:
изолированная песочница – virtualenv.
virtualenv --no-site-packages env source env/bin/activate
Делай четыре:
минимальная документация по проекту.
Создал (пока пустые) файлы
CHANGELOG COPYING README.rst
в папке проекта (~/projects/translit.bot).
Делай пять:
папка пакета – это просто папка
mkdir translitbot
Делай шесть:
папка превращается в пакет. Для этого
необходимо добавить файл (можно пустой)
translitbot/__init__.py
На этом можно было бы и остановится, ибо
пакет уже готов.
Но лучше
добавить еще файл
translitbot/__main__.py
Который позволяет вызывать пакет как
программу, набрав в папке проекта команду
python -m translitbot
Чтобы это работало, в файл __main__.py я
поместил такой код:
#!/usr/bin/env python # -*- mode: python; coding: utf-8 -*- from translitbot.translit_xmpp_bot import main main()
Очевидно, у меня в пакете есть модуль
(файл) translit_xmpp_bot.py в котором есть функция
main, пусть это останется за скобками.
Вот и все, что
необходимо для построения пакета Python.
Теперь в него можно добавлять модули и
подпакеты по необходимости.
Как из пакета
сделать дистрибутив (distribution), как
поместить пакет в PyPI для публикации и
использования в других проектах – я
расскажу в следующий раз.
Сцылки по теме:
original post http://vasnake.blogspot.com/2014/01/package.html
Комментариев нет:
Отправить комментарий