Нашёл очевидно неплохой пример пакета: 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'
Вопрос: как разрабатывать пакеты? Как-то же люди это делают. Юнит-тесты пишут. Крайне надеюсь что они делают это при отрезолвленных символах. Тоже бы хотелось так.