LINUX.ORG.RU

Как люди разрабатывают пакеты для Python?

 ,


0

2

Нашёл очевидно неплохой пример пакета: https://github.com/TomasBeuzen/pycounts

Там современный «pyproject.toml», и он рабочий:

++ python3 -m venv venv-pycounts
++ venv-pycounts/bin/pip install https://github.com/TomasBeuzen/pycounts/archive/main.zip
++ venv-pycounts/bin/python -c 'from pycounts.pycounts import load_text; print(load_text)'
<function load_text at 0x1049bb6a0>

Открываю тесты в PyCharm CE, там ничего из разрабатываемого пакета не резолвится, всё красное.

Учитывая структуру файлов, оно даже не сильно удивительно:

├── pyproject.toml
├── src
│   └── pycounts
│       ├── __init__.py
│       └── pycounts.py
├── tests
│   └── test_pycounts.py

Запускаю тесты, без IDE, опять не резолвится:

++ git clone --depth 1 https://github.com/TomasBeuzen/pycounts
++ cd pycounts
++ python3 -m venv venv
++ ./venv/bin/pip install pytest
++ ./venv/bin/pytest tests/
configfile: pyproject.toml
collected 0 items / 1 error
ImportError while importing test module '/xxx/tmp/pycounts-case/pycounts/tests/test_pycounts.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
tests/test_pycounts.py:1: in <module>
    from pycounts.pycounts import count_words
E   ModuleNotFoundError: No module named 'pycounts'

Вопрос: как разрабатывать пакеты? Как-то же люди это делают. Юнит-тесты пишут. Крайне надеюсь что они делают это при отрезолвленных символах. Тоже бы хотелось так.

★★

Последнее исправление: pvv (всего исправлений: 4)
Ответ на: комментарий от Norgat

ну вот без иде, в консоли тоже все не очень ^^^

можно наверно импортить пакет через pip install -e в отдельный проект для тестирования, но это было бы странно

pvv ★★
() автор топика
++ git clone --depth 1 https://github.com/TomasBeuzen/pycounts
++ cd pycounts
++ python3 -m venv venv
++ ./venv/bin/pip install pytest
++ ./venv/bin/pytest tests/

Это весь твой набор команд? А где установка зависимостей? Пакет очевидно создан в poetry. И что бы установить себе все зависомости тебе нужен poetry install

Aswed ★★★★★
()