Чистая деинсталляция пакетов Python после обновления Ubuntu - PullRequest
0 голосов
/ 09 июля 2019

Я недавно обновил машину с Ubuntu Server 16.04 LTS до 18.04 LTS с помощью командной строки.В результате встроенная установка Python обновлена ​​с Python 3.5 до 3.6.И кажется, что все пакеты Python, ранее установленные с использованием pip3, больше не доступны.Я планирую очистить все эти пакеты и использовать conda для управления пакетами Python.У меня вопрос, Какова лучшая практика для чистого удаления этих недоступных пакетов в этом случае ?

Старые пакеты, установленные через pip3, в основном находились в /usr/local/lib/python3.5/ и ~/.local/lib/python3.5/.Но могут быть и другие оставшиеся файлы, например, под /usr/local/bin/.Я хотел бы удалить все связанные файлы, поставляемые с pip3 install.

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

В итоге я написал сценарий bash для итеративного вызова pip3 uninstall для каждого ранее установленного пакета.

#!/bin/bash

pypath_cmd="PYTHONPATH=$HOME/.local/lib/python3.5/site-packages"
export $pypath_cmd
echo "Uninstalling editable packages in $PYTHONPATH"
rm -f $PYTHONPATH/*.egg-link
rm -f $PYTHONPATH/easy-install.pth

pip3 freeze --all --local | cut --delimiter="=" -f 1 | while read pkg ; do
    echo $pkg: $(pip3 show $pkg | grep "Location:")
    pip3 uninstall -y $pkg
done

pypath_cmd="PYTHONPATH=/usr/local/lib/python3.5/dist-packages"
export $pypath_cmd
echo "Uninstalling editable packages in $PYTHONPATH"
sudo rm -f $PYTHONPATH/*.egg-link
sudo rm -f $PYTHONPATH/easy-install.pth

pip3 freeze --all --local | cut --delimiter="=" -f 1 | while read pkg ; do
    echo $pkg: $(pip3 show $pkg | grep "Location:")
    sudo $pypath_cmd pip3 uninstall -y --no-cache-dir $pkg
done
0 голосов
/ 09 июля 2019

sudo pip install устанавливает пакеты pip в /usr/local/lib/<python_version>/dist-packages и устанавливает пакеты в /usr/lib/<python_version>/dist-packages.Проверьте эти каталоги и удалите ненужные пакеты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...