Вопрос №55627 от пользователя Дмитрий Князев в уроке «Pytest», курс «Python: Автоматическое тестирование»

Дмитрий Князев

У меня при выполнении poetry install начинается бесконечное выполнение Resolving dependencies... Что я делаю не так?

4 0

Сергей Новожилов

Трудно сказать в чем дело. Resolving dependencies - это идет установка зависимостей. У меня на компьютере локальном это занимает 5 секунд.

[serg@localhost ~/Desktop/test]$ poetry new .
Created package test in .

[serg@localhost ~/Desktop/test]$ poetry install
Creating virtualenv test-NOWKIm1G-py3.8 in /home/serg/.cache/pypoetry/virtualenvs
Updating dependencies
Resolving dependencies... (5.7s)

Writing lock file

Package operations: 8 installs, 0 updates, 0 removals

• Installing pyparsing (2.4.7)
• Installing attrs (21.2.0)
• Installing more-itertools (8.8.0)
• Installing packaging (20.9)
• Installing pluggy (0.13.1)
• Installing py (1.10.0)
• Installing wcwidth (0.2.5)
• Installing pytest (5.4.3)

Installing the current project: test (0.1.0)

0

Aleksei Pirogov

Первый запуск в том случае, если у вас ещё нет .lock-файла, может занимать некоторое время. Но подождать нужно будет всего один раз (для данного конкретного проекта).

Дело в том, что poetry нужно сходить несколько раз в сеть, чтобы понять, какие версии пакетов сочетаются между собой. Когда набор версий будет подобран, будет создан .lock-файл, который обычно прикладывают к исходниками в репозиторий. При наличии .lock-файла poetry install сразу устанавливает конкретные версии зависимостей, ничего не вычисляя. А а дальнейшем процесс подгонки зависимостей нужно будет делать, только если вы захотите все их разом обновить.

0

Дмитрий Князев

Aleksei Pirogov, У меня до 2000 секунд доходил процесс, это нормально?))

0

Aleksei Pirogov

Дмитрий Князев, многовато, конечно. Но это же взаимодействие с сетью, а потом ещё и приличная вычислительная работа: нужно решить систему уравнений вида

0.1 < x < 0.2 для пакета P1
0.15 < x и 0.12 для пакета P2
x < 0.25 для пакета P3
...
где x - версия пакета P0
...
повторить для каждого пакета

При этом нужно рассматривать каждую версию каждого пакета на предмет версий её зависимостей - чтобы найти наконец сочетание, при котором все кусочки головоломки сойдутся! Пока сильно ускорить этот процесс не получается, можно только вообще его не делать и ставить последние версии всего в надежде на то, что ничего не сломается :)

0

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
1 июня 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
1 июня 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
1 июня 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
1 июня 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
1 июня 5 месяцев