Сторонние библиотеки и пакетные менеджеры

Сторонние библиотеки

Пришло время познакомимся с первой сторонней библиотекой для python, т.е. библиотекой, которая по умолчанию не включена в дистрибутив python и должна быть установлена самостоятельно. Существует огромное количество сторонних библиотек для python, а для удобства их установки были разработаны пакетные менеджеры.

В качестве примеров сторонних библиотек можно привести numpy, matplotlib, scipy, pandas, scikit-learn, tensorflow, torch, openCV и многие другие. Подавляющее большинство этих библиотек представляет из себя проекты с открытым исходным (open source), которые можно использовать в своих научных исследованиях абсолютно бесплатно.

Самые популярные пакетные менеджеры — conda и PyPI.

Conda

При установке anaconda, conda ставится по умолчанию. Более того, anaconda, кроме самого python, пакетного менеджера conda, устанавливает сразу и ряд часто используемых библиотек. Например, numpy, matplotlib, pandas, scipy, scikit-image и scikit-learn устанавливаются по умолчанию. Библиотека tensorflow устанавливается по умолчанию только на машины с OS Linux, а библиотеки torch и openCV не входят в стандартный набор anaconda и требуют дополнительной установки.

Самый простой способ установить библиотеку — установить её глобально.

  conda install seaborn

PyPI

При установке “голого” python с официального сайта устанавливаются только интерпретатор CPython. Никакие сторонние библиотеки и пакетные менеджеры не устанавливаются (хотя в установщике windows есть возможность установить PyPI одновременно с CPython).

PyPI (Python Package Index) — пакетный менеджер, в целом аналогичный conda. Установка библиотек глобально осуществляется схожей командой.

  pip install seaborn

Или чуть более сложной, но позволяющей явно указать интерпретатор python, для которого устанавливается библиотека (полезно, когда стоит несколько версий python).

  python -m pip install seaborn

Виртуальные окружения

Установка библиотеки глобально означает, что библиотека будет доступна для импортирования в любом коде. Такой подход имеет ряд недостатков. Например, если библиотек становиться слишком много, то могут возникнуть проблемы с совместимостью каких-то из них между собой. Такое может возникнуть, если в разных проектах используются разные библиотеки, но библиотеки из одного проекта требуют какой-то пакет одной версии, а библиотеки другой версии требуют тот же пакет, но другой версии (например, какие-то из них давно не обновлялись).

Чтобы избежать таких проблем, рекомендуется использовать виртуальные окружения (virtual environments), которые позволяют создавать отдельные окружения, каждое из которых может иметь свой набор библиотек своих версий. Подробнее о виртуальных окружения в anaconda можно почитать здесь, а в “голом” CPython предусмотрен модуль venv.

Импортирование сторонних библиотек

После установки библиотеки её можно импортировать так же, как и модули стандартной библиотеки. Самый стандартный импорт

import scipy

или импорт с созданием псевдонима

import numpy as np

или импорт определенных имен из модулей

from matplotlib import pyplot

или комбинированный подход

from matplotlib import pyplot as plt

или даже так

import matplotlib.pyplot as plt