Перейти к содержимому

Как обновить версию python через pip

  • автор:

Как установить библиотеку в Python

Python — популярный язык программирования, который поддерживает много дополнительных библиотек, модулей и фреймворков. Библиотеки помогают упростить разработку программ — используя их, вам не придется каждый раз набирать один и тот же код.

Чтобы установить необходимый пакет на Python, сначала его нужно найти. Для этого используют PyPI (Python Package Index) — хранилище программного обеспечения для Python. Но установка, подключение и работа с пакетами вручную — долгий процесс. Чтобы избежать трудностей, можно использовать специальную утилиту — установщик пакетов pip.

Pip — это утилита в командной строке, с помощью которой можно устанавливать и удалять программные пакеты PyPI. Другими словами, это система управления программными пакетами, написанными на Python.

В этой статье мы расскажем, как устанавливать библиотеки в Python при помощи pip.

Как установить pip

Для Python 3.4 и выше pip установлен по умолчанию, поэтому перед установкой стоит проверить версию Python. Это можно сделать через терминал.

Обновление версии PIP

Пытаюсь обновить pip на ubuntu: (test) test@Ubuntu1604-001:~$ pip install —upgrade pip Получаю:

Requirement already satisfied: pip in ./test/lib/python3.6/site-packages (21.3.1) 

Но pycharm говорит, что есть версия 22.0.3 В среде выдает ошибку:

Try to run this command from the system terminal. Make sure that you use the correct version of 'pip' installed for your Python interpreter located at '*****блаблабла/bin/python3'. 

Как обновить? И связана ли эта ошибка с тем, что я и некоторые другие библиотеки обновить не могу. Например Django на версию 4.0.3

Python-update

Если версия Python, установленная на вашей ОС, не поддерживается модулями или поллером, то необходимо установить дополнительно новую версию Python, удовлетворяющую всем требованиям.

Важно: Изменять системную версию Python на новую — не рекомендуется! Единственный правильный способ — это установить новую версию параллельно системной. Иначе могут перестать работать различные системные службы и утилиты, использующие Python.

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

sudo apt install -y python3-dev python3-pip python3-venv libffi-dev

После того, как все установлено, зайдите на сайт https://www.python.org/downloads/source/ и скопируйте номер последней версии текущей ветки или предыдущей, если текущая ветка слишком свежая. Например, если последняя версия 3.11.1, то надежней все таки установить версию 3.10.11, т.к. сразу после выхода новой версии (3.11) есть вероятность того, что не все зависимые пакеты ее поддерживают.

Далее вам нужно создать временную переменную окружения, значение которой будет содержать номер версии Python, которую вы собираетесь установить.

PY_VER=3.11.6

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

curl -o python.tgz "/Python-$.tgz">https://www.python.org/ftp/python/$/Python-$.tgz" tar xzf python.tgz cd Python-$ ./configure --enable-optimizations make -j $(nproc) sudo -H make altinstall curl -sS https://bootstrap.pypa.io/get-pip.py | sudo -H python3.11 pip3.11 --version cd .. sudo rm -rf Python-$ python.tgz

После выполнения всех этих действий у вас в системе будет установлена еще одна версия Python. В данном случае это Python 3.11 а также инструмент pip тоже с версией 3.11.

Чтобы использовать именно эту версию python и pip, вам нужно указывать целиком имена файлов, которые вы запускаете. Например:

python3.11 --version pip3.11 --version

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

sudo python3.11 -m venv venv sudo venv/bin/pip install -U pip wheel и т.д.

Как обновить все пакеты Python установленные с pip

Пакет pip — это программа для установки и управления пакетами Python. Сам пакет pip в репозитории вашего дистрибутива существует в двух версиях:

  • для Python 3 (называется python3-pip или python-pip в зависимости от того, какая версия Python является версией по умолчанию для вашего дистрибутива)
  • для Python 2 (называется python2-pip или python-pip в зависимости от того, какая версия Python является версией по умолчанию для вашего дистрибутива)

С помощью pip можно устанавливать пакеты Python. Это вносит некоторую путаницу, поскольку эти же самые пакеты можно устанавливать из стандартного репозитория вашего дистрибутива. Но в репозитории имеются далеко не все пакеты Python — только те, которые сопроводители дистрибутива упаковали в установочный пакет этого дистрибутива. Следовательно, через pip можно установить намного больше разных пакетов Python (если они вам нужны).

Как обновить пакеты с pip

Но использование pip имеет свои неудобства — программа не отслеживает выход новых версий и не выполняет их автоматическое обновление.

Поэтому пакеты нужно обновлять вручную и по одному следующими командами:

sudo pip install [имя_пакета] --upgrade

Или более короткий вариант:

sudo pip install [имя_пакета] -U

Проблема здесь в том, чтобы узнать вышла ли уже новая версия пакета?

По этой причине лично я стараюсь устанавливать пакеты Python из стандартного репозитория, поскольку в этом случае они обновляются автоматически при обновлении других пакетов системы. И только если их там нет, то я использую для установки pip.

Как с pip показать пакеты, для которых вышли новые версии

С помощью pip можно проверить выход новых версий. К счастью, это для этого не нужно вводить имя каждого пакета по отдельности.

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

pip list -o

Вариант для Python3:

pip3 list -o

Вариант для Python2:

pip2 list -o

Программа проверяет версии для всех пакетов Python. Обычно их довольно много, поэтому программа может работать довольно долго — несколько минут.

Как в pip обновить сразу все пакеты

Можно посмотреть список устаревших пакетов и потом по одному обновлять их командой, которая дана ещё чуть выше. Но это можно сделать проще.

Следующая большая команда найдёт список всех устаревших пакетов Python и обновит их:

for i in $(pip list -o | awk 'NR > 2 '); do sudo pip install -U $i; done

В сердце этой команды лежит предыдущая медленная команда pip list -o, поэтому выполнение займёт определённое время.

Если вы учитесь программировать на Python3, то вашему сердцу может быть ближе следующий вариант. Создайте файл с именем xx.py и скопируйте в него:

import subprocess as sbp import pip pkgs = eval(str(sbp.run("pip3 list -o --format=json", shell=True, stdout=sbp.PIPE).stdout, encoding='utf-8')) for pkg in pkgs: sbp.run("pip3 install --upgrade " + pkg['name'], shell=True)

Сохраните и закройте этот файл. Когда вы захотите обновить ваши пакеты Python, то запустите этот скрипт следующим образом:

sudo python3 xx.py

Есть ещё парочка способов выполнить полное обновление системы, пример команды:

sudo pip install -U $(pip freeze | awk '')

Её принцип заключается в том, что она составляет список всех пакетов Python, а затем каждый из них пытается обновить. Если обновления нет — то ничего страшного, просто происходит переход к следующему пакету из списка. Если обновление есть, то оно устанавливается и вновь происходит переход к следующему пакету из списка, пока программа полностью не завершит свою работу.

Конечный результат такой же — будут обновлены все пакеты Python.

У предыдущей команды есть ещё один вариант:

sudo pip install -U $(pip freeze | cut -d '=' -f 1)

Принцип работы абсолютно такой же.

Заключение

pip обновляет пакеты только одной версии Python — то есть для Python3 или для Python2 — это зависит от того, какая версия Python является версией по умолчанию для вашего дистрибутива.

Если вы также хотите обновить пакеты для другой версии, то в предыдущих командах везде заменяйте pip на pip2 или pip3 — в зависимости от вашего дистрибутива.

Или вот вариант ещё проще, следующие команды одинаково сработают абсолютно в любых дистрибутивах, так как в них версии указаны явно (при условии, что pip2 и pip3 установлены в вашей системе).

Для обновления всех пакетов Python3:

for i in $(pip3 list -o | awk 'NR > 2 '); do sudo pip3 install -U $i; done

Для обновления всех пакетов Python2:

for i in $(pip2 list -o | awk 'NR > 3 '); do sudo pip2 install -U $i; done

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

Связанные статьи:

  • Ошибка «Cannot uninstall . It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.» (РЕШЕНО) (100%)
  • Ошибка «Error: pg_config executable not found.» (РЕШЕНО) (100%)
  • Решение проблемы со сломавшимся после обновления пакетов Pip (80.6%)
  • Как установить pip в Kali Linux (80.6%)
  • Ошибка «ModuleNotFoundError: No module named ‘manimpango’» (РЕШЕНО) (80.6%)
  • Как получить содержимое и кукиз .onion сайта в Python (RANDOM — 19.5%)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *