uv: почему проект работает локально, но не на другом компьютере
Если Python-проект запускается только у автора, проверьте не список установленных вручную пакетов, а возможность собрать окружение из файлов проекта. Это небольшой сценарий для разработчиков, уже использующих uv, а не новость о релизе.
На Windows, macOS и Linux сначала установите uv способом из официального раздела Installation. Для этой проверки не подключается ИИ-сервис. Работайте только с доверенным проектом, в отдельной локальной копии; установка зависимостей может выполнять код сборки и обращаться к сети.
- Проверьте, что в репозитории есть
pyproject.tomlиuv.lock. Сохраните также выбранную версию Python в.python-version, если проект использует этот файл. Каталог.venvпереносить между компьютерами не нужно. - В корне отдельной копии выполните
uv sync --locked. Команда собирает окружение по lock-файлу, но не должна молча обновлять устаревший lock: несогласованность с настройками проекта означает ошибку. - Запустите штатную команду проекта через
uv run --locked <команда>. Вместо плейсхолдера используйте документированную команду вашего проекта. Ожидаемый результат — запуск с зависимостями из lock-файла, а не случайными пакетами основной среды.
Важно: обычный uv run может сохранять лишние пакеты, тогда как uv sync по умолчанию удаляет из окружения то, чего нет в lock-файле. Поэтому проверять нужно отдельную копию, не чужое рабочее окружение. Extras подключаются отдельно; системные библиотеки, версия Python и различия ОС всё ещё могут влиять на результат.
При ошибке остановитесь и сравните настройки проекта с lock-файлом; не обновляйте зависимости вслепую. Откат этого эксперимента — вернуться к исходной рабочей копии. Сверено по документации 11 октября 2026 года, без установки и запуска редакцией.
Мини-опрос в ответах: что чаще ломало перенос у вас — 1) версия Python, 2) незаписанная зависимость, 3) системная библиотека, 4) другое? Приведите один обезличенный пример и шаг, который помог; секреты и приватный код не публикуйте.
Проверяемые источники
Ответы
Пока нет ответов.