Локальный пакет случайным образом становится неимпортируемым при использовании uv run в проекте, созданном с помощью uv Python

Программы на Python
Ответить
Anonymous
 Локальный пакет случайным образом становится неимпортируемым при использовании uv run в проекте, созданном с помощью uv

Сообщение Anonymous »

Я наблюдаю недетерминированные ошибки импорта при использовании uv для управления проектом Python, созданным с помощью uv init --package. После новой синхронизации uv мой локальный пакет можно импортировать, но после выполнения нескольких команд uv run он внезапно становится недоступным для импорта:

Код: Выделить всё

ModuleNotFoundError: No module named 'tfm_rag_municipal'
Между запусками файлы и конфигурация не меняются. Повторное создание ".venv", удаление uv.lock и запуск uv.sync временно устраняет проблему, но проблема всегда возвращается.

Настройка проекта

Проект создан с использованием:

Код: Выделить всё

uv init --package tfm-rag-municipal
Структура проекта (стандартный макет src):

Код: Выделить всё

tfm-rag-municipal/
pyproject.toml
src/
tfm_rag_municipal/
__init__.py
example.py
corpus_audit/
__init__.py
schema.py
corpusrecord_example.py
tests/
test_example.py
Пример модуля:

Код: Выделить всё

def add(a: int, b: int) -> int:
return a + b
Тест:

Код: Выделить всё

from tfm_rag_municipal.example import add

def test_add_basic():
assert add(2, 3) == 5
pyproject.toml (соответствующие части)

Код: Выделить всё

[project]
name = "tfm-rag-municipal"
version = "0.1.0"
requires-python = ">=3.12"
dependencies = []

[project.scripts]
tfm-rag-municipal = "tfm_rag_municipal:main"

[project.optional-dependencies]
dev = ["pytest", "ruff", "pre-commit"]

[build-system]
requires = ["uv_build>=0.9.15,

Подробнее здесь: [url]https://stackoverflow.com/questions/79837925/local-package-randomly-becomes-unimportable-when-using-uv-run-in-a-project-cre[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»