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

Is it possible to upgrade all Python packages at one time with pip? Note: that there is a feature request for this on the official issue tracker.

More Robust Solution

For pip3, use this:

pip3 freeze --local |sed -rn 's/^([^=# t\][^ t=]*)=.*/echo; echo Processing 1 ...; pip3 install -U 1/p' |sh

For pip, just remove the 3s as such:

pip freeze --local |sed -rn 's/^([^=# t\][^ t=]*)=.*/echo; echo Processing 1 ...; pip install -U 1/p' |sh

OS X Oddity

OS X, as of July 2017, ships with a very old version of sed (a dozen years old). To get extended regular expressions, use -E instead of -r in the solution above.

Solving Issues with Popular Solutions

This solution is well designed and tested1, whereas there are problems with even the most popular solutions.

  • Portability issues due to changing pip command line features
  • Crashing of xargs because of common pip or pip3 child process failures
  • Crowded logging from the raw xargs output
  • Relying on a Python-to-OS bridge while potentially upgrading it3

The above command uses the simplest and most portable pip syntax in combination with sed and sh to overcome these issues completely. Details of the sed operation can be scrutinized with the commented version2.


Details

[1] Tested and regularly used in a Linux 4.8.16-200.fc24.x86_64 cluster and tested on five other Linux/Unix flavors. It also runs on Cygwin64 installed on Windows 10. Testing on iOS is needed.

[2] To see the anatomy of the command more clearly, this is the exact equivalent of the above pip3 command with comments:

# Match lines from pip's local package list output
# that meet the following three criteria and pass the
# package name to the replacement string in group 1.
# (a) Do not start with invalid characters
# (b) Follow the rule of no white space in the package names
# (c) Immediately follow the package name with an equal sign
sed="s/^([^=# t\][^ t=]*)=.*"

# Separate the output of package upgrades with a blank line
sed="$sed/echo"

# Indicate what package is being processed
sed="$sed; echo Processing 1 ..."

# Perform the upgrade using just the valid package name
sed="$sed; pip3 install -U 1"

# Output the commands
sed="$sed/p"

# Stream edit the list as above
# and pass the commands to a shell
pip3 freeze --local | sed -rn "$sed" | sh

[3] Upgrading a Python or PIP component that is also used in the upgrading of a Python or PIP component can be a potential cause of a deadlock or package database corruption.

In this article, we will learn to upgrade all Python packages using pip manager. We will use some built-in functions, pip Python manager available in Python to upgrade all packages available in Python. Let’s first have a quick look over what is a pip in Python.

The Pip Python Package Manager

Programmers generally use virtual environments and pip package while working with the Python programming language. When working with projects in Python, users have packages versions being used are defined, which starts growing with time and some packages start to be outdated. pip Python manager is designed to upgrade the python packages system-wide. Let us look at different ways to use pip to upgrade packages from older versions to newer or latest versions.

Update all packages using pip on Windows

This is the easier way to upgrade packages by using pip in conjunction with Windows PowerShell. Open your command shell and enter the below command. This will upgrade all packages system-wide to the latest or newer version available in the Python Package Index (PyPI).

pip freeze | %{$_.split('==')[0]} | %{pip install --upgrade $_}

Update all packages using pip on Linux

Linux provides a number of ways to use pip in order to upgrade python packages. This includes two ways using grep and awk.

  • Use grep to upgrade packages — The grep is to skip editable («-e») package definitions, and the -n1 flag for xargs that prevents stopping everything, if updating one package fails.
pip3 list --outdated --format=freeze | grep -v '^-e' | cut -d = -f 1 | xargs -n1 pip3 install -U 
  • Use awk to upgrade packages — The below command first lists all outdated packages, then fetches the first column and converts the multiline result from cut into a single-line, and forms a space-separated list. It then skips header lines, fetches the first column and takes 1 argument from the pipe left of it, and at last passes it to the command to upgrade the list of packages.
pip3 list -o | cut -f1 -d' ' | tr " " "n" | awk '{if(NR>=3)print)' | cut -d' ' -f1 | xargs -n1 pip3 install -U

Command for either Windows or Linux for updating packages

pip freeze first outputs a list of installed packages into a requirements file (requirements.txt). Then the user needs to edit requirements.txt, and replace all ‘==’ with ‘>=’. Use the ‘Replace All’ command in the editor. It then upgrades all outdated packages.

#outputs the list of installed packages
pip freeze > requirements.txt

#updates all packages
pip install -r requirements.txt --upgrade

Updating all packages in a Virtual Environment

The easiest way to update unpinned packages (i.e., packages that do not require a specific version) in a virtual environment is to run the following Python script that uses pip. Unlike pip freeze, this command will not print warnings and FIXME errors.

For pip < 10.0.1

import pkg_resources
from subprocess import call

for dist in pkg_resources.working_set:
    call("python -m pip install --upgrade " + dist.<projectname>, shell=True)

For pip >= 10.0.1

import pkg_resources
from subprocess import call

packages = [dist.project_name for dist in pkg_resources.working_set]

call("pip install --upgrade " + ' '.join(packages), shell=True)

Updating all Local Packages using pip-review

This command updates only local Python packages. However, this command may not be feasible because it might sometimes generate errors and pip.review may or may not support Python 3 version. pip-review is a fork of pip-tools. pip-review package works but pip-tools package no longer works in the latest versions of Python.

$ pip install pip-review
$ pip-review --local --interactive

Conclusion

In this article, we learned different commands to upgrade or update all Python packages using pip manager in Python. We saw two main methods such as pip freeze and pip review to update packages.

In this article, we will learn to upgrade all Python packages using pip manager. We will use some built-in functions, pip Python manager available in Python to upgrade all packages available in Python. Let’s first have a quick look over what is a pip in Python.

The Pip Python Package Manager

Programmers generally use virtual environments and pip package while working with the Python programming language. When working with projects in Python, users have packages versions being used are defined, which starts growing with time and some packages start to be outdated. pip Python manager is designed to upgrade the python packages system-wide. Let us look at different ways to use pip to upgrade packages from older versions to newer or latest versions.

Update all packages using pip on Windows

This is the easier way to upgrade packages by using pip in conjunction with Windows PowerShell. Open your command shell and enter the below command. This will upgrade all packages system-wide to the latest or newer version available in the Python Package Index (PyPI).

pip freeze | %{$_.split('==')[0]} | %{pip install --upgrade $_}

Update all packages using pip on Linux

Linux provides a number of ways to use pip in order to upgrade python packages. This includes two ways using grep and awk.

  • Use grep to upgrade packages — The grep is to skip editable («-e») package definitions, and the -n1 flag for xargs that prevents stopping everything, if updating one package fails.
pip3 list --outdated --format=freeze | grep -v '^-e' | cut -d = -f 1 | xargs -n1 pip3 install -U 
  • Use awk to upgrade packages — The below command first lists all outdated packages, then fetches the first column and converts the multiline result from cut into a single-line, and forms a space-separated list. It then skips header lines, fetches the first column and takes 1 argument from the pipe left of it, and at last passes it to the command to upgrade the list of packages.
pip3 list -o | cut -f1 -d' ' | tr " " "n" | awk '{if(NR>=3)print)' | cut -d' ' -f1 | xargs -n1 pip3 install -U

Command for either Windows or Linux for updating packages

pip freeze first outputs a list of installed packages into a requirements file (requirements.txt). Then the user needs to edit requirements.txt, and replace all ‘==’ with ‘>=’. Use the ‘Replace All’ command in the editor. It then upgrades all outdated packages.

#outputs the list of installed packages
pip freeze > requirements.txt

#updates all packages
pip install -r requirements.txt --upgrade

Updating all packages in a Virtual Environment

The easiest way to update unpinned packages (i.e., packages that do not require a specific version) in a virtual environment is to run the following Python script that uses pip. Unlike pip freeze, this command will not print warnings and FIXME errors.

For pip < 10.0.1

import pkg_resources
from subprocess import call

for dist in pkg_resources.working_set:
    call("python -m pip install --upgrade " + dist.<projectname>, shell=True)

For pip >= 10.0.1

import pkg_resources
from subprocess import call

packages = [dist.project_name for dist in pkg_resources.working_set]

call("pip install --upgrade " + ' '.join(packages), shell=True)

Updating all Local Packages using pip-review

This command updates only local Python packages. However, this command may not be feasible because it might sometimes generate errors and pip.review may or may not support Python 3 version. pip-review is a fork of pip-tools. pip-review package works but pip-tools package no longer works in the latest versions of Python.

$ pip install pip-review
$ pip-review --local --interactive

Conclusion

In this article, we learned different commands to upgrade or update all Python packages using pip manager in Python. We saw two main methods such as pip freeze and pip review to update packages.

How to Update All Python Packages

With Python, the best practice of pinning all the packages in an environment at a specific version ensures that the environment can be reproduced months or even years later. 

  • Pinned packages in a requirements.txt file are denoted by ==. For example,  requests==2.21.0. Pinned packages should never be updated except for a very good reason, such as to fix a critical bug or vulnerability.
  • Conversely, unpinned packages are typically denoted by >=, which indicates that the package can be replaced by a later version. Unpinned packages are more common in development environments, where the latest version can offer bug fixes, security patches and even new functionality.

As packages age, many of them are likely to have vulnerabilities and bugs logged against them. In order to maintain the security and performance of your application, you’ll need to update these packages to a newer version that fixes the issue. 

The pip package manager can be used to update one or more packages system-wide. However, if your deployment is located in a virtual environment, you should use the Pipenv package manager to update all Python packages. 

NOTE: be aware that upgrading packages can break your environment by installing incompatible dependencies. This is because pip and pipenv do not resolve dependencies, unlike the ActiveState Platform. To ensure your environment doesn’t break on upgrade, you can sign up for a free ActiveState Platform account and import your current requirements.txt, ready to be upgraded.

Python Package Upgrade Checklist

In general, you can use the following steps to perform a package upgrade:

1. Check that Python is installed

Before packages can be updated, ensure that a Python installation containing the necessary files needed for updating packages is in place by following the steps outlined in <Installation Requirements>

2. Get a list of all the outdated packages

To generate a list of all outdated packages:

pip list --outdated

3. Upgrade outdated packages

Depending on your operating system or virtual environment, refer to the following sections.

Update all Python Packages on Windows

The easiest way to update all packages in a Windows environment is to use pip in conjunction with Windows PowerShell: 

  1. Open a command shell by typing ‘powershell’ in the Search Box of the Task bar
  2. Enter:

    pip freeze | %{$_.split('==')[0]} | %{pip install --upgrade $_}

This will upgrade all packages system-wide to the latest version available in the Python Package Index (PyPI).

Update all Python Packages on Linux

Linux provides a number of ways to use pip in order to upgrade Python packages, including grep and awk.

To upgrade all packages using pip with grep on Ubuntu Linux:

pip3 list --outdated --format=freeze | grep -v '^-e' | cut -d = -f 1 | xargs -n1 pip3 install -U 

To upgrade all packages using pip with awk on Ubuntu Linux:

pip3 list -o | cut -f1 -d' ' | tr " " "n" | awk '{if(NR>=3)print}' | cut -d' ' -f1 | xargs -n1 pip3 install -U 

Updating Python Packages on Windows or Linux 

Pip can be used to upgrade all packages on either Windows or Linux:

  1. Output a list of installed packages into a requirements file (requirements.txt): 
pip freeze > requirements.txt
  1. Edit requirements.txt, and replace all ‘==’ with ‘>=’. Use the ‘Replace All’ command in the editor.
  2. Upgrade all outdated packages: 
pip install -r requirements.txt --upgrade

Updating all Packages in a Virtual Environment

The easiest way to update unpinned packages (i.e., packages that do not require a specific version) in a virtual environment is to run the following Python script that makes use of pip:

import pkg_resources
from subprocess import call

for dist in pkg_resources.working_set:
    call("python -m pip install --upgrade " + dist.<projectname>, shell=True)

Updating all Packages in a Pipenv Environment

The simplest way to update all the unpinned packages in a specific virtual environment created with pipenv is to do the following steps:

  1. Activate the Pipenv shell that contains the packages to be upgraded:
pipenv shell
  1. Upgrade all packages:
pipenv update

Modern way to manage Python packages – ActiveState Platform

The ActiveState Platform is a cloud-based build automation and dependency management tool for Python. It provides dependency resolution for:

  • Python language cores, including Python 2.7 and Python 3.5+
  • Python packages and their dependencies, including:
    • Transitive dependencies (ie., dependencies of dependencies)
    • Linked C and Fortran libraries, so you can build data science packages
    • Operating system-level dependencies for Windows, Linux, and macOS
    • Shared dependencies (ie., OpenSSL)

The ActiveState Platform is the only Python package management solution that not only resolves dependencies but also provides workarounds for dependency conflicts.

Simply following the instruction prompts will resolve the conflict, eliminating dependency hell.

You can try the ActiveState Platform for free by creating an account using your email or your GitHub credentials.  Start by creating a new Python project, pick the latest version that applies to your project, your OS and start to add packages. Or start by simply importing your requirements.txt file and creating a Python version with all the packages you need. The Platform will automatically pick the right package versions for your environment to ensure security and reproducibility.

Watch this tutorial to learn how to use the ActiveState Platform to create a Python 3.9 environment, and then use the Platform’s Command-Line Interface (State Tool) to install and manage it.

requested packages dependenciesReady to see for yourself? You can try the ActiveState Platform by signing up for a free account using your email or GitHub credentials.

Just run the following command to install Python 3.9 and our package manager, the State Tool:

Windows

powershell -Command "& $([scriptblock]::Create((New-Object Net.WebClient).DownloadString('https://platform.activestate.com/dl/cli/install.ps1'))) -activate-default ActiveState-Labs/Python-3.9Beta"

Linux

sh <(curl -q https://platform.activestate.com/dl/cli/install.sh) --activate-default ActiveState-Labs/Python-3.9Beta

Now you can run state install <packagename>. Learn more about how to use the State Tool to manage your Python environment. Or sign up for a free demo and let us show you how it can help improve your dev team’s workflow by compiling Python packages and resolve dependencies in minutes.

Введение

pip — система управления пакетами, которая используется для установки и управления программными пакетами, написанными на Python.

Терминология

  • «Дистрибутив» — то, что pip может установить;
  • «Пакет» — то, что можно использовать в операторах импорта. Большинство дистрибутивов включают один пакет с тем же именем, что и дистрибутив но есть исключения;
  • «Wheel» — это специальный файл с суффиксом .whl;
  • Установка wheel просто копирует файлы в нужную директорию без компиляции и обработки.

Примеры

Установка пакетов

Установка пакета из PyPI

pip install requests

Установка пакета из локального файла wheel

pip install requests-2.22.0-py2.py3-none-any.whl

Установка пакета из Git репозитория

pip install git+https://github.com/psf/requests.git

Установка пакета из директории

pip install /home/user/src/requests

Удаление пакетов

Чтобы удалить пакет:

pip uninstall SomePackage 

Список установленных пакетов

Вывод списка пакетов, установленных через pip

pip list

Пакеты обновления

Бег

 $ pip install --upgrade SomePackage 

 

обновит пакет SomePackage и все его зависимости. Кроме того, pip автоматически удаляет старую версию пакета перед обновлением.

Чтобы обновить сам пункт, сделайте

 $ pip install --upgrade pip

 

в Unix или

 $ python -m pip install --upgrade pip

 

на машинах Windows.

Обновление всех устаревших пакетов в Linux

pip не ток содержит флаг , чтобы позволить пользователю обновить все устаревшие пакеты в одном кадре. Тем не менее, это может быть достигнуто путем объединения команд в среде Linux:

 pip list --outdated --local | grep -v '^-e' | cut -d = -f 1  | xargs -n1 pip install -U

 

Эта команда принимает все пакеты в локальном virtualenv и проверяет, устарели ли они. Из этого списка, он получает имя пакета , а затем трубы , которые в pip install -U команду. В конце этого процесса все локальные пакеты должны быть обновлены.

Обновление всех устаревших пакетов в Windows

pip не ток содержит флаг , чтобы позволить пользователю обновить все устаревшие пакеты в одном кадре. Тем не менее, это может быть достигнуто путем объединения команд в среде Windows:

 for /F "delims= " %i in('pip list --outdated --local') do pip install -U %i

 

Эта команда принимает все пакеты в локальном virtualenv и проверяет, устарели ли они. Из этого списка, он получает имя пакета , а затем трубы , которые в pip install -U команду. В конце этого процесса все локальные пакеты должны быть обновлены.

Создайте файл require.txt для всех пакетов в системе

pip помогает в создании requirements.txt файлов, предоставляя freeze опцию.

 pip freeze > requirements.txt

 

Это позволит сохранить список всех пакетов и их версию , установленный на систему в файл с именем requirements.txt в текущей папке.

Создайте файл require.txt из пакетов только в текущем virtualenv

pip помогает в создании requirements.txt файлов, предоставляя freeze опцию.

 pip freeze --local > requirements.txt

 

--local параметр будет выводить только список пакетов и версий, которые установлены локально на virtualenv. Глобальные пакеты не будут перечислены.

Использование определенной версии Python с pip

Если у вас установлены и Python 3, и Python 2, вы можете указать, какую версию Python вы бы хотели использовать в pip. Это полезно, когда пакеты поддерживают только Python 2 или 3 или когда вы хотите протестировать оба.

Если вы хотите установить пакеты для Python 2, запустите:

 pip install [package]

 

или же:

 pip2 install [package]

 

Если вы хотите установить пакеты для Python 3, выполните:

 pip3 install [package]

 

Вы также можете запустить установку пакета для конкретной установки Python с помощью:

 pathtothatpython.exe -m pip install some_package # on Windows OR
/usr/bin/python25 -m pip install some_package # on OS-X/Linux

 

На платформах OS-X / Linux / Unix важно помнить о различии между системной версией python (обновление которой делает вашу систему неработоспособной) и пользовательской версией (версиями) python. Вы можете, в зависимости от которого вы пытаетесь обновить, необходимо префикс эти команды с sudo и ввода пароля.

Аналогично, в Windows некоторые установки python, особенно те, которые являются частью другого пакета, могут в конечном итоге быть установлены в системные каталоги — те, которые вам придется обновить из командного окна, работающего в режиме администратора, — если вы обнаружите, что вам нужно сделать это , это очень хорошая идея , чтобы проверить , какой питон установки вы пытаетесь обновить с помощью команды , например python -c"import sys;print(sys.path);" или py -3.5 -c"import sys;print(sys.path);" Вы также можете проверить , какой пип вы пытаетесь запустить с pip --version

В Windows, если у вас есть как Python 2 и установлен Python 3, и на вашем пути и вашего питона 3 больше , чем 3,4 , то вы, вероятно , также есть питон пусковая py на вашем системном пути. Затем вы можете делать такие трюки, как:

 py -3 -m pip install -U some_package # Install/Upgrade some_package to the latest python 3
py -3.3 -m pip install -U some_package # Install/Upgrade some_package to python 3.3 if present
py -2 -m pip install -U some_package # Install/Upgrade some_package to the latest python 2 - 64 bit if present
py -2.7-32 -m pip install -U some_package # Install/Upgrade some_package to python 2.7 - 32 bit if present

 

Если вы работаете и поддерживать несколько версий питона я настоятельно рекомендую прочитать до о питона virtualenv или venv виртуальных окружающих средах , которые позволяют выделить как версию питона и пакеты , которые присутствуют.

Установка пакетов еще не на пипе, как колеса

Многие чистые пакеты python еще не доступны в индексе пакетов Python в виде колес, но все равно устанавливаются нормально. Однако некоторые пакеты в Windows выдают ужасную ошибку vcvarsall.bat not found.

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

Самый простой ответ должен пойти на Кристофа Gohlke в отличном месте и найти соответствующую версию библиотеки , которые вам нужны. При необходимости в пакете назвать -cp *** NN *должно соответствовать вашей версии питона, то есть , если вы используете Windows 32 разрядного питона даже на Win64 имя должны включать -win32- и при использовании 64битный питона его должна включать в себя -win_amd64- , а затем версия питона должен соответствовать, то есть для Python 34 файла должно включать в себя -cp * 34 — *** и т.д. , это в основном магия , что пип делает для вас на сайте PyPi.

Кроме того, вам нужно получить соответствующий комплект разработки для Windows для используемой версии python, заголовки для любой библиотеки, к которой интерфейс пытается подключить пакет, возможно, заголовки python для версии python и т. Д.

Python 2.7 использовал Visual Studio 2008, Python 3.3 и 3.4 использовал Visual Studio 2010, а Python 3.5+ использует Visual Studio 2015.

  • Установить « Visual C ++ Compiler пакет для Python 2.7 », которая доступна на веб — сайте Microsoft или
  • Установка « Windows SDK для Windows 7 и .NET Framework 4 » (v7.1), которая доступна на веб — сайте Microsoft или
  • Установка Visual Studio 2015 Community Edition , (или более поздней версии, когда они будут освобождены), гарантируя вам не выбрать опции для установки Поддержка C & C ++ больше не по умолчаниюМне сказали , что это может занять до 8 часов , чтобы загрузить и установить поэтому убедитесь , что эти параметры установлены на первую попытку.

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

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

Альтернативы: Кроме того , стоит глядя, как на PyPI или сайте Christop, за любой чуть более ранней версии пакета , который вы ищете , что в чистом виде питона или предварительно построенный для вашей платформы и питона версии и , возможно , с помощью тех, если найдено, пока ваша посылка не станет доступной. Точно так же , если вы используете самую последнюю версию питона вы можете обнаружить , что он принимает сопровождающим пакета немного времени , чтобы догнать так и для проектов , которые действительно нуждаются в конкретный пакет , который вы , возможно , придется использовать немного старше питона на данный момент. Вы также можете проверить исходный сайт пакетов, чтобы увидеть, есть ли разветвленная версия, которая доступна в готовом виде или в виде чистого Python, и найти альтернативные пакеты, которые предоставляют функции, которые вам необходимы, но доступны — один из примеров, который приходит на ум, это Подушка , активно поддерживается, падение в замене для PIL в настоящее время не обновляется в течение 6 лет и не доступны для Python 3.

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

Примечание по установке предварительных выпусков

Пип следует правилам семантического Поддержка версий и по умолчанию предпочитает выпустил пакеты по пре-релизам. Так что, если данный пакет был выпущен как V0.98 , и есть релиз — кандидат V1.0-rc1 поведение по умолчанию pip install будет установить V0.98 — если вы хотите установить релиз — кандидат, рекомендуется для тестирования в виртуальной среде , во- первых, вы можете включить это сделать с --pip install --pre имя-пакета или --pip install --pre --upgrade имя-пакета. Во многих случаях в предварительных выпусках или у кандидатов на выпуск могут не быть колес, созданных для всех комбинаций платформы и версии, поэтому вы с большей вероятностью столкнетесь с вышеуказанными проблемами.

Замечание по установке версий разработки

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

Для таких установок существует три варианта:

  1. Загрузка сжатого снимка, большинство систем контроля версий в Интернете имеют возможность загрузить сжатый снимок кода. Это можно загрузить вручную и затем устанавливается с pip install путь / к / загруженному / примечанию файла, для большинства форматов сжатия пипа будет обрабатывать распаковки в области кэша и т.д.

Синтаксис

Интерфейс использования:
  pip <command> [options]

Команды:
  install                     Установка пакетов.
  download                    Скачивание пакетов.
  uninstall                   Удаление пакетов.
  freeze                      Вывод установленных пакетов в формате файла зависимостей.
  list                        Вывод списка установленных пакетов.
  show                        Вывод информации об установленных пакетах.
  check                       Проверка совместимости установленных пакетов с их зависимостями.
  config                      Управление локальной и глобальной конфигурацией.
  search                      Поиск пакетов в PyPI.
  wheel                       Сборка wheel из зависимостей.
  hash                        Вычисление хешей из  hashes of package archives.
  completion                  Вспомогательная команда для автодополнения командной строки.
  debug                       Вывод информации применимой для отладки.
  help                        Вывод справки по командам.

Общие опции:
  -h, --help                  Вывод справки.
  --isolated                  Запуск pip в изолированном режиме, с игнорированием переменных окружения и пользовательскую конфигурацию.
  -v, --verbose               Расширенный вывод. Опция аддитивная и может использоваться до 3 раз.
  -V, --version               Вывод версии.
  -q, --quiet                 Сокращенный вывод. Опция аддитивная и может использоваться до 3 раз (соответствует уровням логирования WARNING, ERROR, и CRITICAL).
  --log <path>                Путь инкрементального вывода логов.
  --proxy <proxy>             Настройки прокси в форме [user:passwd@]proxy.server:port.
  --retries <retries>         Максимальное количество попыток, которое должно предпринять каждое соединение (по умолчанию 5 раз).
  --timeout <sec>             Установить время ожидания сокета (по умолчанию 15 секунд).
  --exists-action <action>    Действие по умолчанию, когда путь уже существует: (s)witch, (i)gnore, (w)ipe, (b)ackup, (a)bort.
  --trusted-host <hostname>   Пометить хост как доверенный, в случае если HTTPS хоста инвалидный.
  --cert <path>               Путь к альтернативному комплекту CA.
  --client-cert <path>        Путь к сертификату клиента SSL, отдельный файл, содержащий закрытый ключ и сертификат в формате PEM.
  --cache-dir <dir>           Настройка директории кеширования данных.
  --no-cache-dir              Отключение кеша.
  --disable-pip-version-check Отключение периодической проверки PyPI на доступность новой версии pip.
  --no-color                  Подавление цветного вывода.

Параметры

Примечания

При необходимости, pip выполняет компиляцию нативного кода. В Linux Python автоматически выберет доступный компилятор C в вашей системе.

Пакеты можно устанавливать с помощью системного менеджера пакетов, и с помощью пакетного менеджера самого python, например pip.
В последнем случае пакеты лучше устанавливать в каталоге пользователя (user-wide).

Содержание

1 Список всех устаревших пакетов

  • Создать список всех устаревших пакетов:

    pip3 list --outdated
    
  • Создать список всех устаревших пакетов, установленных пользователем:

    pip3 list --outdated --user
    

2 Обновление всех пакетов python в Linux

  • Обновляем пакеты, установленные пользователем (--user).

  • С использованием pip и grep:

    pip3 list --outdated --format=freeze --user | grep -v '^-e' | cut -d = -f 1 | xargs -n1 pip3 install -U --user
    
  • С использованием pip и awk:

    pip3 list --outdated --user | cut -f1 -d' ' | tr " " "n" | awk '{if(NR>=3)print)' | cut -d' ' -f1 | xargs -n1 pip3 install -U --user
    

3 Обновление всех пакетов python в Windows

  • Обновляем пакеты, установленные пользователем (--user).

  • Используем powershell:

    pip freeze --user | %{$_.split('==')[0]} | %{pip install --upgrade $_ --user}
    

Дмитрий Сергеевич Кулябов

Дмитрий Сергеевич Кулябов
Профессор кафедры прикладной информатики и теории вероятностей

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие

  • Windows. Синхронизация времени
  • Начальная конфигурация коммутатора Cisco
  • Язык программирования HCL
  • Packer
  • Управление файлами конфигурации. Chezmoi

Содержание:развернуть

  • Pip или pip3?
  • Если pip не установлен
  • Windows

  • Linux (Ubuntu и Debian)

  • MacOS

  • Как обновить PIP
  • Команды PIP
  • Пример работы с пакетами

PIP — это менеджер пакетов. Он позволяет устанавливать и управлять пакетами на Python.

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

  • вы заходите на сайт, выбираете нужную версию пакета;
  • скачиваете ее, разархивируете, перекидываете в папку проекта;
  • подключаете, прописываете пути, тестируете.

Вполне вероятно, что эта версия библиотеки вообще не подходит, и весь процесс повторяется заново. А если таких библиотек 10? Устанавливать их вручную?

Нет 🙅🏻‍♂️

Менеджер пакетов PIP — решает данную проблему. Весь процесс установки пакета сводится к выполнению консольной команды pip install package-name. Несложно представить, сколько времени это экономит.

Если вы работали с другими языками программирования, концепция pip может показаться вам знакомой. Pip похож на npm (в Javascript), composer (в PHP) или gem (в Ruby).

Pip является стандартным менеджером пакетов в Python

Pip или pip3?

В зависимости от того, какая версия Python установлена в системе, может потребоваться использовать pip3 вместо pip.

Если вы не знаете какая версия Python установлена на вашей системе, выполните следующие команды:

  • python --version — для Python 2.x
  • python3 --version — для Python 3.x
  • python3.8 --version — для Python 3.8.x

Советуем использовать версию Python 3.6 и выше

Если команда «python» не найдена, установите Python по инструкции из предыдущей статьи.

Далее нужно убедиться, что сам PIP установлен и работает корректно. Узнать это поможет команда:

pip --version

Команда отобразит в консоли версию pip, путь до pip и версию python, для которой в дальнейшем будут устанавливаться пакеты:

pip 19.2.3 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)

☝️ Важный момент: в зависимости от того, какую версию Python вы будете использовать, команда может выглядеть как pip , pip3 или pip3.8

Альтернативный вариант вызова pip:

python3.7 -m pip install package-name

Флаг -m сообщает Python-у запустить pip как исполняемый модуль.

Если pip не установлен

Pip поставляется вместе с Python, и доступен после его установки. Если по какой-то причине pip не установлен на вашей системе, установить его будет не сложно.

Windows

  1. Скачайте файл get-pip.py и сохраните у себя на компьютере.
  2. Откройте командную строку и перейдите в папку, в которой сохранен get-pip.py.
  3. В командной строке выполните команду: python get-pip.py или python3 get-pip.py.
  4. PIP установлен 🎉!

Linux (Ubuntu и Debian)

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

Для Питона 2-й версии, выполните команду:

apt-get install python-pip

Для Питона 3-ей версии:

apt-get install python3-pip

MacOS

  • скачайте файл get-pip.py командой curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py;
  • запустите скачанный файл командой: python get-pip.py или python3 get-pip.py.

Должна появиться запись Successfully Installed. Процесс закончен, можно приступать к работе с PIP на MacOS!

Как обновить PIP

Иногда, при установке очередного пакета, можно видеть сообщение о том, что доступна новая версия pip.

WARNING: You are using pip version 19.2.3, however version 19.3.1 is available.

А в следующей за ней строке

You should consider upgrading via the 'python -m pip install --upgrade pip' command.

указана команда для обновления pip:

python -m pip install --upgrade pip

Команды PIP

Синтаксис pip выглядит следующим образом: pip + команда + доп. опции

pip <command> [options]

Со всеми командами pip можно ознакомиться, выполнив pip help . Информацию по конкретной команде выведет pip help <command>.

Рассмотрим команды pip:

  • pip install package-name — устанавливает последнюю версию пакета;
  • pip install package-name==4.8.2 — устанавливает пакет версии 4.8.2;
  • pip install package-name --upgrade — обновляет версию пакета;
  • pip download — скачивает пакеты;
  • pip uninstall — удаляет пакеты;
  • pip freeze — выводит список установленных пакетов в необходимом формате ( обычно используется для записи в requirements.txt);
  • pip list — выводит список установленных пакетов;
  • pip list --outdated — выводит список устаревших пакетов;
  • pip show — показывает информацию об установленном пакете;
  • pip check — проверяет установленные пакеты на совместимость зависимостей;
  • pip search — по введенному названию, ищет пакеты, опубликованные в PyPI;
  • pip wheel — собирает wheel-архив по вашим требованиям и зависимостям;
  • pip hash — вычисляет хеши архивов пакетов;
  • pip completion — вспомогательная команда используется для завершения основной команды;
  • pip help — помощь по командам.

Пример работы с пакетами

PIP позволяет устанавливать, обновлять и удалять пакеты на компьютере. Ниже попробуем разобраться с работой менеджера pip на примере парсинга названий свежих статей на сайте habr.com.

  • установим нужные пакеты;
  • импортируем пакет в свой скрипт;
  • разберемся, что такое requirements.txt;
  • обновим/удалим установленные пакеты.

Приступим 🙎🏻‍♂️

Шаг #1 Установка.

Для начала, нам необходимо установить beautifulsoup4 — библиотеку для парсинга информации с веб-сайтов.

pip3 install beautifulsoup4

pip найдет последнюю версию пакета в официальном репозитории pypi.org. После скачает его со всеми необходимыми зависимостями и установит в вашу систему. Если вам нужно установить определенную версию пакета, укажите её вручную:

pip3 install beautifulsoup4==4.8.2

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

Также для работы beautifulsoup нам понадобится пакет lxml:

pip install lxml

☝️ Важный момент: по умолчанию pip устанавливает пакеты глобально. Это может привести к конфликтам между версиями пакетов. На практике, чтобы изолировать пакеты текущего проекта, создают виртуальное окружение (virtualenv).

Шаг #2 Импортирование в скрипте.

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

from urllib.request import urlopen
from bs4 import BeautifulSoup

# скачиваем html
page = urlopen("https://habr.com/ru/top/")
content = page.read()

# сохраняем html в виде объекта BeautifulSoup
soup = BeautifulSoup(content, "lxml")

# Находим все теги "a" с классом "post__title_link"
all_a_titles = soup.findAll("a", { "class" : "post__title_link" })

# Проходим по каждому найденному тегу и выводим на экран название статьи
for a_title in all_a_titles:
print(a_title.text)

Шаг #3 requirements.txt.

Если вы просматривали какие-либо проекты Python на Github или где-либо еще, вы, вероятно, заметили файл под названием requirements.txt. Этот файл используется для указания того, какие пакеты необходимы для запуска проекта (в нашем случае beautifulsoup4 и lxml).

Файл requirements.txt создается командой:

pip freeze > requirements.txt

и выглядит следующим образом:

beautifulsoup4==4.8.2
lxml==4.4.2
soupsieve==1.9.5

Теперь ваш скрипт вместе с файлом requirements.txt можно сохранить в системе контроля версий (например git).

Для работы парсера в новом месте (например на компьютере другого разработчика или на удаленном сервере) необходимо затянуть файлы из системы контроля версий и выполнить команду:

pip install -r requirements.txt

Шаг #4 Обновление/удаление установленных пакетов.

Команда pip list --outdated выведет список всех устаревших пакетов. Обновить отдельно выбранный пакет поможет команда:

pip install package-name --upgrade

Однако бывают ситуации, когда нужно обновить сразу все пакеты из requirements.txt. Достаточно выполнить команду:

pip install -r requirements.txt --upgrade

Для удаления пакета выполните:

pip uninstall package-name

Для удаления всех пакетов из requirements.txt:

pip uninstall -r requirements.txt -y


Мы разобрали основы по работе с PIP. Как правило, этого достаточно для работы с большей частью проектов.

Вступление

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

Для решения этой проблемы был создан
pip-review. Он позволяет легко
управлять всеми доступными обновлениями PyPi с
помощью простых команд.

Первоначально являясь частью пакета pip-tools , теперь он существует
как отдельная удобная оболочка для pip . В этом руководстве мы
расскажем, как обновить все пакеты с помощью pip-review .

Установить pip-review

Вы можете установить pip-review в виртуальной среде, если вы хотите ее
содержать, или в общесистемной среде. Естественно, установка
pip-review осуществляется через pip :

 $ pip install pip-review 
 ... 
 Successfully installed pip-review-1.1.0 

Справочная страница pip-review

Если вы забыли какую-либо из этих команд или вам просто нужен обзор
параметров команды:

 $ pip-review -h 
 usage: pip-review [-h] [--verbose] [--raw] [--interactive] [--auto] 
 
 Keeps your Python packages fresh. Looking for a new maintainer! See https://github.com/jgonggrijp/pip-review/issues/76 
 
 optional arguments: 
 -h, --help show this help message and exit 
 --verbose, -v Show more output 
 --raw, -r Print raw lines (suitable for passing to pip install) 
 --interactive, -i Ask interactively to install updates 
 --auto, -a Automatically install every update found 
 
 Unrecognised arguments will be forwarded to pip list --outdated and pip install, so you can pass things such as --user, --pre and --timeout and they will do what you expect. See pip list -h and pip install -h 
 for a full overview of the options. 

Проверить все версии пакетов с помощью pip-review

Иногда вам просто нужно проверить, есть ли какие-либо обновления, прежде
чем переходить к потенциально длинному списку обновлений. Чтобы
проверить все версии пакета, просто запустите:

 $ pip-review 
 scikit-learn==0.23.2 is available (you have 0.23.1) 
 scipy==1.5.4 is available (you have 1.4.1) 
 seaborn==0.11.0 is available (you have 0.10.1) 
 ... 

Это дает вам отчет, в котором перечислены все доступные обновления
пакетов. По сути, он называет pip list – outdated . Это имеет то
преимущество, что вы можете решить, какие пакеты вы хотите обновить,
если они вообще есть.

Обновите все пакеты с помощью pip-review

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

 $ pip-review --auto 
 Collecting beautifulsoup4==4.9.3 
 Downloading beautifulsoup4-4.9.3-py3-none-any.whl (115 kB) 
 ... 

Выполнение только этой команды — все готово. Это так просто.

Обновите все пакеты в интерактивном режиме с помощью pip-review

Если вы, возможно, не хотите обновлять некоторые конкретные пакеты, вам
не нужно запускать программу обновления --auto Если вы запустите
процесс как --interactive , вы можете выбрать для каждого отдельного
пакета, хотите ли вы его обновлять или нет:

 $ pip-review --interactive 
 matplotlib==3.3.3 is available (you have 3.1.3) 
 Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit N 
 numpy==1.19.4 is available (you have 1.18.1) 
 Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit Y 
 pandas==1.1.5 is available (you have 1.0.3) 
 Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit N 
 ... 

Для каждого пакета доступно четыре варианта: «Да», «Нет», «Все» и
«Выйти».

Выбор «Да» означает, что вы хотите, чтобы этот конкретный пакет был
добавлен в «список подлежащих обновлению». В конце каждый пакет в этом
списке обновляется.

Если вы в конечном итоге выберете «Нет», это будет означать, что пакет
не будет обновляться. Выбор «Все» означает, что все продвигаемые пакеты
будут добавлены в список. Наконец, выбор «Quit» будет означать, что
pip-review пропустит все оставшиеся пакеты и обновит только те, для
которых вы выбрали «Yes».

Запретить pip-review обновлять определенные пакеты

В некоторых ситуациях может потребоваться запретить автоматическое
обновление определенных пакетов при запуске pip-review --auto .
Возможно, это было сделано для того, чтобы избежать проблем с
зависимостями, что является распространенной проблемой.

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

Его синтаксис и содержимое идентичны файлам требований. Есть одно
ключевое отличие:

Включение пакета в файл ограничений не запускает установку пакета.

Создадим файл constraints.txt

 $ export PIP_CONSTRAINT="/home/username/constraints.txt 

А теперь в него вставим:

 matplotlib==3.1.3 
 pandas==1.0.3 

Заключение

Обновление пакетов с помощью pip может быть утомительным и трудоемким.
И, как и ожидалось в мире информатики, родился инструмент для
автоматизации этого. В этой статье мы pip-review — как ее установить,
а также как использовать ее для обновления пакетов в Python.

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

  • Где взять отсутствующий пакет?
  • Менеджер пакетов в Python pip
  • Установка pip
  • Обновление pip
  • Использование pip
    • Установка пакета
    • Удаление пакета
    • Обновление пакетов
    • Просмотр установленных пакетов
    • Поиск пакета в репозитории
  • Где еще можно почитать про работу с pip?

Где взять отсутствующий пакет?

Необходимость в установке дополнительного пакета возникнет очень быстро, если вы решите поработать над задачей, за рамками базового функционала, который предоставляет Python. Например: работа с web, обработка изображений, криптография и т.п. В этом случае, необходимо узнать, какой пакет содержит функционал, который вам необходим, найти его, скачать, разместить в нужном каталоге и начать использовать. Все эти действия можно сделать вручную, но этот процесс поддается автоматизации. К тому же скачивать пакеты с неизвестных сайтов может быть довольно опасно.

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

Менеджер пакетов в Python pip

Pip – это консольная утилита (без графического интерфейса). После того, как вы ее скачаете и установите, она пропишется в PATH и будет доступна для использования.

Эту утилиту можно запускать как самостоятельно:

> pip <аргументы>

так и через интерпретатор Python:

> python -m pip <аргументы>

Ключ -m означает, что мы хотим запустить модуль (в данном случае pip). Более подробно о том, как использовать pip, вы сможете прочитать ниже.

Установка pip

При развертывании современной версии Python (начиная с Python 2.7.9 и Python 3.4),
pip устанавливается автоматически. Но если, по какой-то причине, pip не установлен на вашем ПК, то сделать это можно вручную. Существует несколько способов.

Универсальный способ

Будем считать, что Python у вас уже установлен, теперь необходимо установить pip. Для того, чтобы это сделать, скачайте скрипт get-pip.py

> curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

и выполните его.

> python get-pip.py

При этом, вместе с pip будут установлены setuptools и wheels. Setuptools  – это набор инструментов для построения пакетов Python. Wheels – это формат дистрибутива для пакета Python. Обсуждение этих составляющих выходит за рамки урока, поэтому мы не будем на них останавливаться.

Способ для Linux

Если вы используете Linux, то для установки pip можно воспользоваться имеющимся в вашем дистрибутиве пакетным менеджером. Ниже будут перечислены команды для ряда Linux систем, запускающие установку pip (будем рассматривать только Python 3, т.к. Python 2 уже морально устарел, а его поддержка и развитие будут прекращены после 2020 года).

Fedora

Fedora 21:

> sudo yum install python3 python3-wheel

Fedora 22:

> sudo dnf install python3 python3-wheel

openSUSE

> sudo zypper install python3-pip python3-setuptools python3-wheel

Debian/Ubuntu

> sudo apt install python3-venv python3-pip

Arch Linux

> sudo pacman -S python-pip

Обновление pip

Если вы работаете с Linux, то для обновления pip запустите следующую команду.

> pip install -U pip

Для Windows команда будет следующей:

> python -m pip install -U pip

Использование pip

Далее рассмотрим основные варианты использования pip: установка пакетов, удаление и обновление пакетов.

Установка пакета

Pip позволяет установить самую последнюю версию пакета, конкретную версию или воспользоваться логическим выражением, через которое можно определить, что вам, например, нужна версия не ниже указанной. Также есть поддержка установки пакетов из репозитория. Рассмотрим, как использовать эти варианты.

Установка последней версии пакета

> pip install ProjectName

Установка определенной версии

> pip install ProjectName==3.2

Установка пакета с версией не ниже 3.1

> pip install ProjectName>=3.1

Установка Python пакета из git репозитория

> pip install -e git+https://gitrepo.com/ProjectName.git

Установка из альтернативного индекса

> pip install --index-url http://pypackage.com/ ProjectName

Установка пакета из локальной директории

> pip install ./dist/ProjectName.tar.gz

Удаление пакета

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

> pip uninstall ProjectName

Обновление пакетов

Для обновления пакета используйте ключ –upgrade.

> pip install --upgrade ProjectName

Просмотр установленных пакетов

Для вывода списка всех установленных пакетов применяется команда pip list.

> pip list

Если вы хотите получить более подробную информацию о конкретном пакете, то используйте аргумент show.

> pip show ProjectName

Поиск пакета в репозитории

Если вы не знаете точное название пакета, или хотите посмотреть на пакеты, содержащие конкретное слово, то вы можете это сделать, используя аргумент search.

> pip search "test"

Где ещё можно прочитать про работу с pip?

В сети довольно много информации по работе с данной утилитой.

Python Packaging User Guide – набор различных руководств по работе с пакетами в Python

Документация по pip.

Статья на Geekbrains.

P.S.

Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
Книга: Pandas. Работа с данными

<<< Python. Урок 15. Итераторы и генераторы    Python. Урок 17. Виртуальные окружения>>>

Понравилась статья? Поделить с друзьями:
  • Как обновить виндовс 7 максимальная до windows 10 на компьютере бесплатно
  • Как обновить виндовс 7 до windows 10 через флешку
  • Как обновить виндовс 7 до windows 10 на ноутбуке бесплатно
  • Как обновить виндовс 7 до windows 10 без флешки
  • Как обновить виндовс 7 до windows 10 без потери данных