Рубрики
Без рубрики

Часть 3 еще одна упаковка с CookieCutter

Кредит на обложке Установите свою духовку на 350F, или 175C в этом посте мы будем выпекать пакет Python. T… Tagged с Python, Pip, CookieCutter.

Кредит на обложке

Установите свою духовку на 350F, или 175C в этом посте мы будем выпекать пакет Python. Это третий выпуск в серии. В предыдущем посте мы настроили базовый пакет, создав структуру вручную. В этом посте мы будем использовать очень крутой пакет CookieCutter Анкет CookieCutter может клонировать каталог другого репо или даже местного каталога. У вас будет готовый пакет Python в кратчайшие сроки. Существует также большая база данных шаблонов, а не только для Python.

Установка CookieCutter

Вы можете установить CookieCutter с командой PIP (примечание: я использую PIP3, потому что у меня также установлен PY2):

pip3 install cookiecutter

Создать пакет

На моем каталоге GIT я могу запустить:

cookiecutter https://github.com/audreyr/cookiecutter-pypackage

Поскольку GitHub является дефектом для репозиториев, вы также можете запустить:

cookiecutter gh:audreyr/cookiecutter-pypackage

Примечание: обязательно скажем 2 для CLI

Все установлено и сделано:

Менее чем за минуту был создан целый проект со всеми необходимыми файлами для пакета Python.

Добавление функции для проверки пакета

Я использую vScode, поэтому внутри основного каталога пакетов.

code .

Мы повторно используем Наш say_hello функция, чтобы убедиться, что проект работает как ожидалось:

# -*- coding: utf-8 -*-

"""Main module."""
def say_hello(name):
    print("hello %s" % (name))

Установка пакета

Установка с аргументом dev так же, как и раньше:

python3 setup.py develop

Тестирование функции say_hello

На этом этапе мы можем проверить нашу функцию. Запустите Python3 в терминале или запускуйте.

>>> from another_package import *
>>> say_hello("fer")

Не бежит, да? Мы забыли сделать одну вещь, и это добавить наш модуль Python в файл init. Причина, по которой он не удается, заключается в том, что он не знает, какие функции включать в пакет.

>>> from another_package import *
>>> say_hello("fer")
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'say_hello' is not defined

Добавление модуля PY в init

Открыть _ init _.py Внутри папки пакета, а под версией вставьте следующее (Обратите внимание на точку перед именем модуля) :

from .another_package import *

Здесь мы говорим init, чтобы импортировать все наши функции.

Тест 2

Выйдите из Python и перезагрузите еще одну_package.

>>> from another_package import *
>>> say_hello("fer")
hello fer

С этим процессом вы больше не забудете добавить файл Readme или лицензию.

Слово о CookieCutter

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

Следующая статья

У нас есть рабочий пакет, но в данный момент у него нет никакой функциональности. В следующем посте мы добавим некоторые функции, чтобы запустить как сценарий из Bash или CMD -подсказки. Мы также узнаем, как использовать аргументы с модулем Argparse. Более удовольствие приехать, следите за обновлениями!

Например:

say_hello -n "fer" -l "balandran"
output: hello fer balandran

Оригинал: “https://dev.to/thefern/another-package-with-cookiecutter-578d”