20 января 2026

Poetry всегда использует системный python

 Всё началось с жалобы разработчика в рабочем чате что после публикации приложения на GitHub тесты стали валиться с ошибкой.

poetry env use python3.13
Recreating virtualenv app in /home/runner/work/app/app/.venv
Using virtualenv: /home/runner/work/app/app/.venv
poetry install --with dev

Current Python version (3.12.3) is not allowed by the project (>=3.13,<3.14).
Please change python executable via the "env use" command.

Проект использует poetry 2.1.1 которая не самая свежая (последняя это 2.2.1), но и не слишком древняя. При этом выше по логу видна установка python 3.13.11 и он вызывается без проблем если выполнить python3.13 --version.

Добавил в Makefile проекта вывод poetry env info

Virtualenv
Python:         3.12.3
Implementation: CPython
Path:           /home/runner/work/app/app/.venv
Executable:     /home/runner/work/app/app/.venv/bin/python
Valid:          True

Base
Platform:   linux
OS:         posix
Python:     3.12.3
Path:       /usr
Executable: /usr/bin/python3.12

Версия python почему-то 3.12.3 (это версия python в Ubuntu 24.04) вместо нужной 3.13.11 которую устанавливает GitHub экшен. Если вызывать python3.13 напрямую, то версия правильная, но смена интерпретатора через poetry env use python3.13 всё равно выдаёт 3.12.3.

Дальше было убито несколько часов на отладку этой проблемы, а в итоге я нашёл сообщения об ошибке в багтрекере poetry на GitHub:


Вы можете следить за обновлениями блога с помощью Atom/RSS и Telegram.

Комментариев нет:

Отправить комментарий