Зависимости
Теперь, когда мы уверены, что pip находится в нашем распоряжении, мы собираемся ограничить наше внимание только MS Windows, поскольку его поведение (должно быть) одинаково во всех ОС, но прежде чем мы начнем, нам нужно объяснить важную проблему и рассказать вам о зависимостях.
Представьте, что Вы создали блестящее приложение Python под названием redsuspenders, способное предсказывать курсы валют с точностью 99% (кстати, если Вы умеете это делать, немедленно свяжитесь с нами).
Конечно, Вы использовали некоторый существующий код для достижения этой цели - например, Ваше приложение импортирует пакет с именем nyse, содержащий некоторые важные функции и классы. Более того, пакет nyse импортирует другой пакет с именем wallstreet, а пакет wallstreet импортирует два других важных пакета с именем bull и bear.
Как Вы, наверное, уже догадались, связи между этими пакетами имеют решающее значение, и если кто-то решит использовать Ваш код (но помните, мы уже поставили на него), они также должны будут убедиться, что все необходимые пакеты на месте.
Короче говоря, мы можем сказать, что зависимость - это явление, которое возникает каждый раз, когда Вы собираетесь использовать часть программного обеспечения, которое полагается на другое программное обеспечение. Обратите внимание, что зависимость может включать (и обычно включает) более одного уровня разработки программного обеспечения.
Означает ли это, что потенциальный пользователь пакета nyse обязан отслеживать все зависимости и вручную устанавливать все необходимые пакеты? Это было бы ужасно, правда?
Да, это определенно ужасно, поэтому не стоит удивляться тому, что процесс усердного выполнения всех последующих требований имеет собственное название и называется адом зависимостей.
Что с этим делать? Неужели каждый пользователь обречен на ад, чтобы запустить код в первый раз?
К счастью, нет - pip может сделать все это за Вас. Он может обнаруживать, идентифицировать и разрешать все зависимости. Более того, он может делать это самым умным способом, избегая ненужных загрузок и переустановок.