Установка pip — Python: Настройка окружения
Если вы устанавливали Python на macOS или Windows по нашим рекомендациям, то pip будет установлен вместе с интерпретатором. На Ubuntu его нужно поставить отдельно с помощью команды:
sudo apt update sudo apt install python3-pip
Запуск pip
Можно запускать pip непосредственно командой pip . Но лучше воспользоваться более длинной командой, которая гарантированно вызовет самую свежую установленную версию pip для нужной версии Python.
Итак, вызываем pip:
-m pip --version 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 — результат будет тот же самый.
Установка первого пакета
Попробуем установить первый пакет. Для примера возьмем пакет cowsay , который мы установим сразу в пользовательское окружение.
Причин для установки туда есть несколько:
- Мы не помешаем своими пакетами другим пользователям системы
- Нам не потребуются права администратора
- Мы не поломаем операционную систему случайной установкой более свежего пакета, чем того требует система (особенно это важно в Linux, где многие системные задачи решаются с помощью Python)
Итак, установим cowsay:
Пакет установился и стал доступен интерпретатору. Теперь мы видим, что он делает — печатает корову, которая говорит заданную пользователем фразу.
Флаг —user команды pip install сообщает pip, что мы хотим установить пакет в глобальное окружение текущего пользователя. Если этот флаг не указать, то pip установит пакет в общесистемное окружение. Старайтесь не делать так, чтобы не мешать другим пользователям системы.
Программа pip, точки входа и PATH
Как мы увидели выше, установленный пакет cowsay может быть использован из кода. Но этот пакет имеет еще и точку входа.
Точки входа — это готовые к исполнению программы, содержащиеся в пакете. Если у пакета есть точки входа, то pip создаст для каждой специальный исполняемый скрипт, который позволит удобно запускать программу из командной оболочки.
При этом нужно обращать внимание на путь до директории, в которую pip помещает такие скрипты — например, на Linux это ~/.local/bin . Этот путь нужно добавить в PATH . Проверьте содержимое PATH , и если путь прописан правильно, то скрипт для cowsay должен работать так:
Точка входа — это всегда Python-модуль, пригодный для запуска в роли программы. Такие программы называют еще исполняемыми файлами — позже мы рассмотрим, как такие делать. Создаваемые pip’ом скрипты вызывают python3 -m имя_модуля , поэтому установленный нами cowsay можно запускать точно так же:
Всегда свежий pip
Как вы могли уже догадаться, сам pip — это тоже точка входа одноименного пакета pip, поэтому мы его запускаем командой python3 -m pip .
Еще pip нужно периодически обновлять. Вы можете установить свежий pip в пользовательское окружение с помощью такой команды:
-m pip install --user --upgrade pip
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
- 130 курсов, 2000+ часов теории
- 1000 практических заданий в браузере
- 360 000 студентов
Наши выпускники работают в компаниях:
Как обновить pip?

Статья с подробным руководством по обновлению пакетного менеджера pip.
Введение
PyPI (аббр. от англ. Python Package Index — «каталог пакетов Python») — каталог программного обеспечения, написанного на языке программирования Python. В сочетании с системами управления библиотечными пакетами (pip, easy_install) аналогичен PEAR для PHP и CPAN для Perl. По состоянию на февраль 2020 года содержит более 216 000 пакетов, тогда как в 2010 году пакетов было всего около 10000.
Установка
Предлагаю опустить момент установки pip и считать что он у вас уже установлен. Еще хотелось бы обратить внимание, что в разных операционных системах pip запускается по разному — pip или pip3. При использование виртуальных окружений создаются символические ссылки на оба варианта.
Текущая версия
Для этого достаточно выполнить команду pip show pip

На момент написания статьи я использую версию pip 20.1.1, давайте проверим, есть ли в репозитории версия свежее.
Выполняем команду — pip search pip | grep «INSTALLED:»

К сожалению нет, я использую последнюю версию pip.
Обновление
Но для чистоты эксперимента у меня есть виртуальная машина с Fedora Linux для всяких тестерских нужды, давайте проверим какая версия pip находится у меня там.

Как видим у нас используется версия 19.3.1, давайте попробуем его обновить. Чтобы выполнить обновление достаточно ввести команду в терминал
pip install —upgrade pip или более короткий вариант pip install -U pip

Заключение
На этом обновление pip в Python подошло к концу, если у вас возникли дополнительные вопросы — не стесняйтесь задавать их в комментариях.
Pip Upgrade – And How to Update Pip and Python

Kolade Chris

Python is a widely used and powerful programming language that’s relatively simple to learn.
Python releases patch updates every few months and major updates around once in a year. Because of this, it is always a good idea to update the version of Python you have on your computer.
In addition, you need to update Python so you can get access to the exciting features they add after major updates. For example, there’s quite a speed improvement in Python 3.11 over 3.10.
There’s also a Python package manager called Pip you might need to update occasionally. It is to Python what NPM is to JavaScript.
Starting from Python 3.4, Pip comes with the standard Python distribution. But if you don’t get it after installing Python for some reason, then you need to install it manually.
In this article, I will show you how to update Python on your Mac and Windows computer. I will also show you how to update Pip on the two operating systems.
What We’ll Cover
- How to Update Python and Pip on Mac OS
- How to Update Python and Pip with Homebrew
- How to Update Only Pip with the Terminal
- Conclusion
How to Update Python and Pip on Mac OS
One of the easiest ways to update Python and Pip on Mac is by downloading the package from the Python official website.
When you update Python, the Pip version that comes with it is also updated.
First, check the versions of Python and Pip you have by running python3 —version and pip3 —version :


For me, I picked 3.11 because it’s now stable.
Scroll down and download it for your OS – be it Windows or Mac. I chose Mac becuase I use Mac:

Run the installer and follow every prompt you see.

Confirm the installation by running python3 —version and pip3 —version :

How to Update Python and Pip with Homebrew
If you use Mac, you can also update Python and Pip with Homebrew.
Install pyenv by running brew install pyenv . pyenv is a Python version management tool. It is to Python what NVM (Node version manager) is to JavaScript.

Install any version of Python you want, for instance, 3.9 or 2.7:

You can also update Python by running pyenv latest-version-number . For example, python 3.11 . When you install that Python version, you install Pip too.
How to Update Only Pip with the Terminal
In cases when you want to update only Pip, open your terminal and run pip3 install —upgrade pip . You can then confirm the update by running pip3 —version :

Conclusion
This article took you through how to update Python and Pip by downloading the installation package and using the command line. We also looked at how you can update Pip only if you want to.
If you are using Windows and you want to update Python and Pip, you can also download the latest installer and let the installation wizard guide you through installing it.
Thanks for reading!
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT

Kolade Chris
Web developer and technical writer focusing on frontend technologies. I also dabble in a lot of other technologies.
If you read this far, thank the author to show them you care. Say Thanks
Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started
ADVERTISEMENT
freeCodeCamp is a donor-supported tax-exempt 501(c)(3) charity organization (United States Federal Tax Identification Number: 82-0779546)
Our mission: to help people learn to code for free. We accomplish this by creating thousands of videos, articles, and interactive coding lessons — all freely available to the public.
Donations to freeCodeCamp go toward our education initiatives, and help pay for servers, services, and staff.
Почему вам действительно нужно обновить pip
Новые выпуски программного обеспечения могут содержать исправления ошибок, новые функции и более высокую производительность. Например, в NumPy 1.20 добавлены аннотации типов и улучшена производительность за счет использования SIMD, когда это возможно. Если вы устанавливаете NumPy, возможно, вы захотите установить самую новую версию.
К сожалению, если вы используете старую версию pip , установка последней версии пакета Python может завершиться ошибкой или установиться более медленным и более сложным способом.
Почему? Комбинация управления версиями glibc , графика окончания срока службы CentOS и способов установки pip пакетов.
Давайте посмотрим, в чем именно заключается проблема, как ее решить и, наконец, если вам достаточно интересно, что ее вызывает.
Проблема со старым pip
Начнем с образа Docker Ubuntu 18.04. Эта версия Ubuntu, выпущенная в апреле 2018 года, включает Python версии 3.6 и pip версии 9.
[itamarst@blake dev]$ docker run -it ubuntu:18.04 root@1a43d55f0524:/# apt-get update . root@1a43d55f0524:/# apt-get install --no-install-recommends python3 python3-pip . root@1a43d55f0524:/# pip3 --version pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
Все идет нормально.
Ошибка №1: компиляция из исходников
Затем давайте установим пакет cryptography , который является одним из самых загружаемых пакетов Python на PyPI, с миллионами загрузок в месяц (обычно как косвенная зависимость).
root@1a43d55f0524:/# pip3 install cryptography Collecting cryptography Downloading https://files.pythonhosted.org/packages/fa/2d/2154d8cb773064570f48ec0b60258a4522490fcb115a6c7c9423482ca993/cryptography-3.4.6.tar.gz (546kB) 100% |################################| 552kB 1.4MB/s Complete output from command python setup.py egg_info: Traceback (most recent call last): File "", line 1, in ModuleNotFoundError: No module named 'setuptools' ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-6jesygn0/cryptography/
Эта ошибка означает, что pip , хочет скомпилировали пакеты; это сработает, если мы установим компилятор setuptools и цепочку инструментов разработки Python, но это будет довольно медленно.
Конечно, это не один пакет. Та же проблема возникает например с PyArrow:
root@1a43d55f0524:/# pip3 install pyarrow Collecting pyarrow Downloading https://files.pythonhosted.org/packages/62/d3/a482d8a4039bf931ed6388308f0cc0541d0cab46f0bbff7c897a74f1c576/pyarrow-3.0.0.tar.gz (682kB) 100% |################################| 686kB 1.1MB/s Complete output from command python setup.py egg_info: Traceback (most recent call last): File "", line 1, in ModuleNotFoundError: No module named 'setuptools' ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-heq6zwd7/pyarrow/
Почему pip пытается скомпилировать эти пакеты с нуля? Почему мы не получаем предварительно скомпилированный двоичный пакет?
Мы увидим ответ чуть позже, после того как рассмотрим вторую ошибку.
Ошибка №2: старые версии
Затем давайте установим Fil, мой профилировщик памяти для Python.
root@1a43d55f0524:/# pip3 install filprofiler Collecting filprofiler Downloading https://files.pythonhosted.org/packages/e3/a2/843e7b5f1aba27effb0146c7e564e2592bfc9344a8c8ef0d55245bd47508/filprofiler-0.7.2-cp36-cp36m-manylinux1_x86_64.whl (565kB) 100% |################################| 573kB 1.8MB/s Installing collected packages: filprofiler Successfully installed filprofiler-0.7.2
Это сработало! За исключением того, что вы посетите страницу PyPI для Fil, вы увидите, что версия 0.7.2 довольно устарела. На момент написания этой статьи последняя версия Fil — 0.14.1.
Почему была установлена старая версия?
pip и manylinux
Многие пакеты — от NumPy до Cryptography — требуют компиляции некоторого кода на C/C++/Cython/Rust/и т. д. Чтобы избавить вас от необходимости компилировать все с нуля, специалисты по сопровождению могут загрузить скомпилированную версию кода — «wheels» — в указатель пакетов Python. Если pip видит wheels, которое будет работать с вашей конкретной версией Python и версией операционной системы, он загрузит его вместо исходного кода.
Для Linux, существует несколько вариантов wheels: manylinux1 , manylinux2010 , и manylinux2014 . Вы можете увидеть, какой вариант используется в имени файла загружаемого wheels.
Проблема в том, что старые версии pip не поддерживаются manylinux2010 , и уж точно не manylinux2014 . В Ubuntu 18.04 pip слишком стар, поэтому он знает только о manylinux1 . Это объясняет две проблемы, которые мы видели:
- Если проверить имеющиеся файлы списков для PyArrow 3.0.0 на PyPI, вы увидите , что wheels есть только manylinux2010 и manylinux2014 . Поэтому pip решил вернуться к пакету исходного кода, который требует компиляции.
- Если вы проверите файлы PyPI для Fil, вы увидите, что есть manylinux2010 , а исходных пакетов нет вообще; поскольку сборка из исходных текстов немного сложна, я распространяю только скомпилированные пакеты. Это означает, что pip продолжает возвращаться к более старым версиям пакета, пока не найдет ту, в которой есть manylinux1 .
Решение: обновление pip
Чтобы получить самые последние и лучшие пакеты без компиляции, вам необходимо обновить до последней версии pip . Как вы это делаете, зависит от вашего окружения.
В общем, можно выполнить pip install —upgrade pip .
Однако в некоторых средах могут возникать проблемы. Например, если вы посмотрите выше, как мы настраиваем Python в Ubuntu 18.04, мы установили pip из системного пакета.
Проблема в том, что перезапись случайных файлов из системного пакета — плохая идея. Если вы не работаете в среде, которую вы можете при необходимости перестроить с нуля — например, образ Docker — вам никогда не следует запускать pip install с правами root или с помощью sudo для изменения системных пакетов.
Поэтому вместо этого в Ubuntu 18.04 вы можете получить pip через загрузку:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python3 get-pip.py
Или вы можете создать virtualenv, а затем обновить его pip , выполнив pip install —upgrade pip :
root@1a43d55f0524:/# python3 -m venv myvenv root@1a43d55f0524:/# . myvenv/bin/activate (myvenv) root@1a43d55f0524:/# pip --version pip 9.0.1 from /myvenv/lib/python3.6/site-packages (python 3.6) (myvenv) root@1a43d55f0524:/# pip install --upgrade pip Collecting pip Using cached https://files.pythonhosted.org/packages/fe/ef/60d7ba03b5c442309ef42e7d69959f73aacccd0d86008362a681c4698e83/pip-21.0.1-py3-none-any.whl Installing collected packages: pip Found existing installation: pip 9.0.1 Uninstalling pip-9.0.1: Successfully uninstalled pip-9.0.1 Successfully installed pip-21.0.1
Теперь, когда у нас есть более новая версия pip , мы можем легко установить последние версии cryptography и filprofiler :
(myvenv) root@1a43d55f0524:/# pip install cryptography filprofiler Collecting cryptography Downloading cryptography-3.4.6-cp36-abi3-manylinux2014_x86_64.whl (3.2 MB) |################################| 3.2 MB 4.5 MB/s . Installing collected packages: pycparser, threadpoolctl, cffi, filprofiler, cryptography Successfully installed cffi-1.14.5 cryptography-3.4.6 filprofiler-0.14.1 pycparser-2.20 threadpoolctl-2.1.0
Обратите внимание, что мы загрузили пакет manylinux2014 для cryptography .
Почему существует так много вариаций manylinux?
Скомпилированные расширения Python в Linux связываются со стандартной библиотекой C, а в wheels, в частности, они связываются с GNU Libc, также известной как glibc. Вы можете увидеть, с какими библиотеками связана исполняемая или разделяемая библиотека, с помощью утилиты ldd :
root@1a43d55f0524:/# cd myenv/lib/python3.6/site-packages root@1a43d55f0524:/# ldd cryptography/hazmat/bindings/_openssl.abi3.so linux-vdso.so.1 (0x00007ffdbea7b000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fba7b1bf000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fba7adce000) /lib64/ld-linux-x86-64.so.2 (0x00007fba7b7b0000)
Обратите внимание, что скомпилированное расширение Python полагается, среди прочего, на glibc /lib/x86_64-linux-gnu/libc.so.6 .
Если вы компилируете свой код с более новой версией glibc, ему могут потребоваться новые API или символы, которые недоступны в старых версиях. А это означает, что ваш код не будет работать с более старыми версиями glibc, то есть со старыми дистрибутивами Linux.
Есть несколько различных решений этой проблемы. Conda решает эту проблему, скомпилировав все свои пакеты по старой версии заголовков glibc, которые она включает; в основном он имеет настраиваемую настройку компиляции, предназначенную для работы с широким спектром выпусков Linux.
Бинарные wheels PyPI решают эту проблему путем компиляции в старых версиях Linux, которые, соответственно, имеют старые версии glibc. Поскольку он скомпилирован для старой версии, он будет работать и с любой более новой версией.
- Пакеты manylinux1 построены на CentOS 5.
- Пакеты manylinux2010 построены на CentOS 6.
- Пакеты manylinux2014 построены на CentOS 7.
Мотивация для каждого нового варианта — это окончание срока службы каждой версии CentOS. И каждый новый вариант требует соответствующей новой версии pip . Вы можете узнать больше в PEP-571 и PEP-599.
Обновите свой pip!
Независимо от того, настраиваете ли вы среду разработки или пишете свой Dockerfile , обязательно обновите pip . В противном случае вам будет намного сложнее устанавливать пакеты.