Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером
Инструмент pip и альтернативные источники пакетов
Python: Настройка окружения
Ранее в курсе мы установили пакет cowsay. Если не уточнить иное, то pip устанавливает пакеты из основного индекса — PyPI. Оттуда был взят и пакет cowsay.
В большинстве случаев PyPI — это именно тот источник пакетов, который нам нужен. Но бывают случаи, когда пакет находится в альтернативном индексе — например, внутрикорпоративном. Еще бывает так, что пакет вообще не опубликован ни в одном индексе, а просто загружен на GitHub.
Pip умеет работать и с альтернативными индексами и с репозиториями, содержащими исходный код пакетов. В этом уроке мы рассмотрим оба варианта.
Альтернативные индексы пакетов
Если вызывать команду pip install
с опцией --index-url <url>
, то pip будет искать пакет и все его зависимости в индексе по указанному url-адресу. Давайте попробуем установить пакет из специального тренировочного индекса :
Заметьте, что url-адрес индекса указан в виде что-то-там/simple
— именно так по соглашению должны именоваться индексы.
Test PyPI содержит большинство пакетов, которые есть в основном PyPI, но обычно держателям локальных индексов не хочется хранить у себя копии всех версий всех пакетов. Обычно держатели хранят только свои пакеты, а все внешние зависимости получают из другого индекса — обычно это уже общий PyPI.
У pip и для такого случая есть опция: можно в дополнение к --index-url
указать --extra-index-url <url>
. В такой конфигурации pip ищет каждый пакет в первом индексе, а если не найдет, то обращается к дополнительному индексу. Команда целиком может выглядеть так:
python3 pip https://test.pypi.org/simple https://pypi.org/simple dogesay
Установка пакетов из репозиториев на GitHub
Иногда пакет не хочется выкладывать на PyPI. Например, когда все еще сырой пакет нужно проверить и попробовать установить. В подобных случаях пакеты устанавливают прямо из git-репозиториев. Давайте установим с помощью pip наш учебный :
Этот пакет установится, только если у вас pip версии 20 и выше. Если вы увидите ошибку при установке пакета, попробуйте обновить сам pip такой командой:
python3 pip pip
Здесь вместо имени пакета указывается тот же url-адрес, который вы использовали бы при клонировании репозитория, но дополненный приставкой git+
. Эта приставка подсказывает pip, что по url-адресу расположен Git-репозиторий — не обязательно размещенный на GitHub.
Во время установки пакета pip вызывает git clone
, чтобы клонировать репозиторий во временную директорию. Если репозиторий закрытый, то понадобится ввести имя пользователя и пароль для доступа к репозиторию. Это работает и с приватными репозиториями GitHub.
Вообще pip поддерживает не только Git, но и другие системы контроля версий. Управлять установкой пакетов из этих систем можно очень гибко — например, можно указывать ветки, теги или хеши коммитов, по которым расположена желаемая версия пакета. Подробнее можно почитать .
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
130 курсов, 2000+ часов теории
1000 практических заданий в браузере
360 000 студентов
Наши выпускники работают в компаниях:
от 6 300 ₽ в месяц
Обучитесь разработке бэкенда сайтов и веб-приложений — серверной части, которая отвечает за логику и базы данных
от 5 025 ₽ в месяц
Собирайте, анализируйте и интерпретируйте данные, улучшайте бизнес-процессы и продукт компании. Обучитесь работе с библиотеками Python
Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером
Установка pip
Python: Настройка окружения
Если вы устанавливали Python на macOS или Windows по нашим рекомендациям, то pip будет установлен вместе с интерпретатором. На Ubuntu его нужно поставить отдельно с помощью команды:
apt update
apt python3-pip
Можно запускать pip непосредственно командой pip
. Но лучше воспользоваться более длинной командой, которая гарантированно вызовет самую свежую установленную версию pip для нужной версии Python.
Итак, вызываем pip:
python3 pip
pip 20.0.2 from /usr/lib/python3/dist-packages/pip python 3.8
При показе своей версии pip также сообщает, куда установлен он сам и на какой версии Python он запущен.
Обратите внимание на структуру команды, которую мы вызывали. Эта команда означает «python3
, запусти модуль -m
с именем pip
как программу с параметром --version
».
Если вы в дальнейшем увидите в документации к pip команды, вроде pip help
, то смело вызывайте python3 -m pip help
— результат будет тот же самый.
Установка первого пакета
Попробуем установить первый пакет. Для примера возьмем пакет , который мы установим сразу в пользовательское окружение.
Причин для установки туда есть несколько:
- Мы не помешаем своими пакетами другим пользователям системы
- Нам не потребуются права администратора
- Мы не поломаем операционную систему случайной установкой более свежего пакета, чем того требует система (особенно это важно в Linux, где многие системные задачи решаются с помощью Python)
Итак, установим cowsay:
Пакет установился и стал доступен интерпретатору. Теперь мы видим, что он делает — печатает корову, которая говорит заданную пользователем фразу.
Программа pip, точки входа и PATH
Как мы увидели выше, установленный пакет cowsay может быть использован из кода. Но этот пакет имеет еще и точку входа.
Точки входа — это готовые к исполнению программы, содержащиеся в пакете. Если у пакета есть точки входа, то pip создаст для каждой специальный исполняемый скрипт, который позволит удобно запускать программу из командной оболочки.
При этом нужно обращать внимание на путь до директории, в которую pip помещает такие скрипты — например, на Linux это ~/.local/bin
. Этот путь нужно добавить в PATH
. Проверьте содержимое PATH
, и если путь прописан правильно, то скрипт для cowsay должен работать так:
Точка входа — это всегда Python-модуль, пригодный для запуска в роли программы. Такие программы называют еще исполняемыми файлами — позже мы рассмотрим, как такие делать. Создаваемые pip’ом скрипты вызывают python3 -m имя_модуля
, поэтому установленный нами cowsay можно запускать точно так же:
Всегда свежий pip
Как вы могли уже догадаться, сам pip — это тоже точка входа одноименного пакета pip, поэтому мы его запускаем командой python3 -m pip
.
Еще pip нужно периодически обновлять. Вы можете установить свежий pip в пользовательское окружение с помощью такой команды:
python3 pip pip
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
130 курсов, 2000+ часов теории
1000 практических заданий в браузере
360 000 студентов
Наши выпускники работают в компаниях:
от 6 300 ₽ в месяц
Обучитесь разработке бэкенда сайтов и веб-приложений — серверной части, которая отвечает за логику и базы данных
от 5 025 ₽ в месяц
Собирайте, анализируйте и интерпретируйте данные, улучшайте бизнес-процессы и продукт компании. Обучитесь работе с библиотеками Python
Что такое библиотеки в Python и зачем они нужны?
Библиотеки в Python — это предварительно написанные модули, которые можно включить в свою программу. Они экономят время, предоставляя готовые функциональные решения.
Какие библиотеки наиболее популярны для анализа данных?
Для анализа данных часто используются Pandas, NumPy и Matplotlib. Pandas хорош для работы с табличными данными, NumPy — для математических операций, а Matplotlib — для визуализации.
Как установить библиотеку в Python?
Обычно библиотеки устанавливаются через менеджер пакетов pip. Команда в командной строке будет выглядеть примерно так: pip install имя_библиотеки.
Есть ли стандартные библиотеки в Python?
Да, Python идет с большой стандартной библиотекой, которая предлагает модули для разнообразных задач, от работы с файлами до сетевых операций.
Что такое веб-фреймворки и какие из них на Python?
Веб-фреймворки — это библиотеки для разработки веб-приложений. В Python популярны Django и Flask. Django предлагает много “из коробки”, в то время как Flask дает больше гибкости.
Какую библиотеку выбрать для машинного обучения?
Scikit-learn — отличный выбор для стандартных задач машинного обучения. Если речь идет о нейронных сетях, стоит обратить внимание на TensorFlow и PyTorch.