Обновление пакетов pip после обновления python - PullRequest
0 голосов
/ 16 октября 2018

После обновления с Python 3.6 до 3.7 (Windows), каков правильный способ обновления всех существующих пакетов, установленных с Pip в предыдущей версии?Это не использование virtualenv или pipenv.

1 Ответ

0 голосов
/ 16 декабря 2018

Вы можете обновить все устаревшие пакеты напрямую:

pip install -U $(pip list -o freeze | cut -f1 -d=)

Длинная версия:

pip install --upgrade $(pip list --outdated --format freeze | cut --fields=1 --delimiter="=")

Или вы можете создать и использовать файл для вывода списка всех устаревших имен пакетов pip:

list все устаревшие pip-пакеты и отформатируйте вывод как "freeze";

-d= обрежьте все после "=" (разделитель);

> сбросьтерезультат в файл.

pip list -o freeze | cut -f1 -d= > pip_list_outdated.txt

Длинная версия:

pip list --outdated --format freeze | cut --fields=1 --delimiter="="> pip_list_outdated.txt

Вывод будет выглядеть примерно так:

gunicorn
PySimpleGUI
python-engineio
python-socketio
requests
setuptools
six

Обновление до последней версии устаревших пакетов pip с использованиемимя в каждой строке:

pip install -U $(<pip_list_outdated.txt)

Длинная версия:

pip install --upgrade $(<pip_list_outdated.txt)

Неправильный путь:

Если вы введете:

pip list -o freeze:

Вы получите что-то вроде:

autopep8==1.4.3
chardet==3.0.4
Django==2.1.4

И если вы попытаетесь обновить, используя этот результат:

pip install -U $(pip list -o freeze)

Вы получите сообщения:

Requirement already up-to-date: autopep8==1.4.3 in ...
Requirement already up-to-date: chardet==3.0.4 in ...
Requirement already up-to-date: Django==2.1.4 in ...

Это происходит потому, что указанная в результате версия уже установлена.

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

...