Я случайно установил пакеты Python в свою систему, используя pip
вместо apt-get
. Я сделал это двумя способами:
- используя старую версию virtualenv, я забыл добавить
--no-site-packages
при создании virtualenv - после этого, когда я вызывалpip install
, пакеты Python устанавливались в систему, а не в virtualenv - в правильной настройке virtualenv я набрал
sudo pip install somepackage
- sudo установлен в систему, а не virtualenv
Я случайно заметил это, потому что набрал pip freeze
текст за пределами virtualenv и обнаружил в списке некоторые пакеты Python, которых там быть не должно. Итак, теперь мой вопрос:
- как определить все пакеты Python, которые были ошибочно установлены в системе (то есть пакеты Python, которые появляются в
pip freeze
списке, но не были установлены вместеapt-get
)? - как мне их удалить?
python
package-management
pip
david.libremone
источник
источник
sudo rm -r /usr/local/lib/python2.7
. Все идет нормально./usr/local/lib/python3.5
, и через некоторое время обновлениеupdate-notifier-common
пакета не удалось из-за отсутствияsix
пакета Python 3 . Я закончил установкуsix
сsudo -H pip3 install six
./usr/local/bin/
(некоторое время назад я просто удалил/usr/local/lib/python3.5
и переключился на conda ).В настоящее время Pip игнорирует команды удаления, которые пытаются удалить то, что принадлежит ОС. Это не ошибка, как это происходит с отсутствующим пакетом. Итак, теперь вы можете удалить с помощью следующего процесса:
Отредактируйте выведенный файл, чтобы удалить все
-e
строки «редактируемой установки», все после==
знака (%s;==.*;;g
в vim), поменяйте местами новые строки на пробелы (%s;\n; ;g
в vim). Затем вы можете удалить все ненужные пакеты сЯ должен был сделать эту процедуру дважды, потому что несколько пакетов были установлены в
~/.local/lib
тоже время.источник
sudo pip uninstall -y $(pip freeze | sed 's;==.*;;g' | tr '\n' ' ')
pip
. На archlinux сpip
удовольствием удаляет системные пакеты. С другой стороны,pip
на Debian Джесси жалуется и ошибается:Not uninstalling virtualenv at /usr/lib/python3/dist-packages, owned by OS
AFAIK
sudo pip install
установится на/usr/local/lib/pythonVERSION/dist-packages
. Вам нужно запустить,sudo pip uninstall
чтобы удалить пакеты всей системы. Кажется, что онpip freeze
ищет метаданные пакета и перечисляет все, что установлено, то есть как из pip, так и из apt-get вне virtualenvs. В-l
виртуальной среде есть возможность перечислить пакеты, применимые только к этой виртуальной среде, но, похоже, это случай по умолчанию и в виртуальной среде. Я думаю, что вы можете просто удалить связанные пакеты,/usr/local/lib/pythonVERSION/dist-packages
но не очень удобный метод, я думаю.источник
Чтобы удалить пакет, установленный через pip, просто нажмите Ctrl+ Alt+ Tна клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команду ниже.
Искать пакеты
Чтобы определить, какие пакеты Python были установлены с помощью pip, введите
freeze
команду, которая выдаст вам список установленных пакетов и их версий. Я бы предложил удалить все экземпляры и переустановить с помощьюsudo apt-get
командыисточник
pip uninstall
если бы я использовалsudo pip install
в первую очередь?pip freeze
показывает только установленные пакеты (AFAICS).Мне нужно было безопасно очистить дисковое пространство от пакетов Python. Хотя это полная очистка пакетов, мне нужно было также перенести версии Python, чтобы старые пакеты не требовались. Я использовал следующее, чтобы получить все мои имена пакетов, пропустить первые 2 строки и получить первый столбец, а также удалить без участия пользователя:
источник
Это как-то связано с Homebrew. У меня не было проблем с pyodbc на моем Mac Air, пока я не установил Homebrew и не использовал его для нескольких вещей. Я нашел эту тему на github, которая заканчивается решением, которое работает для меня.
«Если у вас есть Homebrew, просто установите заголовки ODBC:
и снова запустите «pip install pyodbc».
Это на 100% решило проблему для меня и заняло всего минуту. Дать ему шанс.
источник