python setup.py удалить
Я установил пакет Python с python setup.py install
,
Как мне удалить его?
18 ответов
Вам необходимо удалить все файлы вручную, а также отменить любые другие действия, которые установка выполняла вручную.
Если вы не знаете список всех файлов, вы можете переустановить его с помощью --record
вариант, и посмотрите на список, который это производит.
Для записи списка установленных файлов вы можете использовать:
python setup.py install --record files.txt
Если вы хотите удалить, вы можете использовать xargs для удаления:
cat files.txt | xargs rm -rf
Или, если вы используете Windows, используйте Powershell:
Get-Content files.txt | ForEach-Object {Remove-Item $_ -Recurse -Force}
Затем удалите также содержащий каталог, например, /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/my_module-0.1.egg/
на macOS
, У него нет файлов, но Python все равно импортирует пустой модуль:
>>> import my_module
>>> my_module.__file__
None
После удаления Python показывает:
>>> import my_module
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'my_module'
Для меня в основном работает следующее:
установить пункт, например:
$ easy_install pip
Проверьте, как называется ваш установленный пакет с точки зрения pip:
$ pip freeze
В этом списке будут перечислены все пакеты, которые вы установили (и которые были обнаружены pip). Имя может быть длинным, затем использовать только имя пакета, отображаемое в и после #egg=
, Вы также можете в большинстве случаев игнорировать часть версии ==
или же -
).
Затем удалите пакет:
$ pip uninstall package.name.you.have.found
Если он запрашивает подтверждение об удалении пакета, то вы счастливчик, и он будет удален.
pip должен обнаружить все пакеты, которые были установлены с помощью pip. Он также должен обнаружить большинство пакетов, установленных с помощью easy_install или setup.py, но в некоторых редких случаях это может привести к сбою.
Вот реальный пример из моего локального теста с именем пакета ttr.rdstmc
в MS Windows.
$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
ttr.utcutils==0.1.1dev
$ python setup.py develop
.....
.....
Finished processing dependencies for ttr.rdstmc==0.0.1dev
$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
-e hg+https://vlcinsky@bitbucket.org/vlcinsky/ttr.rdstmc@d61a9922920c508862602f7f39e496f7b99315f0#egg=ttr.rdstmc-dev
ttr.utcutils==0.1.1dev
$ pip uninstall ttr.rdstmc
Uninstalling ttr.rdstmc:
c:\python27\lib\site-packages\ttr.rdstmc.egg-link
Proceed (y/n)? y
Successfully uninstalled ttr.rdstmc
$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
ttr.utcutils==0.1.1dev
Редактировать 2015-05-20
Все, что написано выше, по-прежнему применимо, так или иначе, сейчас есть небольшие модификации.
Установите pip в python 2.7.9 и python 3.4
Последние версии Python поставляются с пакетом ensurepip
Позволяет устанавливать pip даже в автономном режиме:
$ python -m surepip --upgrade
В некоторых системах (например, в Debian Jessie) это недоступно (чтобы предотвратить нарушение установки Python системы).
С помощью grep
или же find
Примеры выше предполагают, у вас есть grep
установлены. У меня был (в то время, когда на моей машине была MS Windows) установлен набор утилит linux (включая grep). Кроме того, используйте родной MS Windows find
или просто проигнорируйте эту фильтрацию и найдите имя в более длинном списке обнаруженных пакетов Python.
Ответ № 1 имеет проблемы:
- Не будет работать на Mac.
- Если установлен файл, который содержит пробелы или другие специальные символы,
xargs
Команда не удастся, и удалите все файлы / каталоги, которые соответствуют отдельным словам. -r
вrm -rf
не является необходимым и в худшем случае может удалить вещи, которые вы не хотите.
Вместо этого для unix-like:
sudo python setup.py install --record files.txt
# inspect files.txt to make sure it looks ok. Then:
tr '\n' '\0' < files.txt | xargs -0 sudo rm -f --
И для окон:
python setup.py bdist_wininst
dist/foo-1.0.win32.exe
Есть также неразрешимые проблемы с удалением setup.py
установка, которая не будет беспокоить вас в типичном случае. Для более полного ответа, смотрите эту вики-страницу:
Сначала запишите файлы, которые вы установили. Вы можете повторить эту команду, даже если вы ранее запускали setup.py install
:
python setup.py install --record files.txt
Когда вы хотите удалить, вы можете просто:
sudo rm $(cat files.txt)
Это работает, потому что команда rm берет разделенный пробелами список файлов для удаления, а ваша установочная запись - именно такой список.
Теперь Python дает вам возможность установить pip
во время установки (я нахожусь на Windows, и по крайней мере python делает для Windows!). Учитывая, что вы решили установить pip
во время установки Python (на самом деле вам не нужно выбирать, потому что это по умолчанию), pip
уже установлена для вас. Затем введите pip
в командной строке вы должны увидеть всплывающую подсказку. Вы можете найти необходимые инструкции по использованию там. Например pip list
показывает список установленных пакетов. Ты можешь использовать
pip uninstall package_name
удалить любой пакет, который вам больше не нужен. Подробнее читайте здесь (документация по пунктам).
Не совсем отвечая на вопрос, но помогая мне каждый день:
Установите ваши пакеты с
pip install .
Это помещает пакет в $HOME/.local
, Удалить с помощью
pip uninstall <package_name>
Ленивый способ: просто удалите из меню установки Windows (если вы используете Windows) или из команды rpm, при условии, что вы сначала переустановите его после создания дистрибутива.
Например,
python setup.py bdist_wininst
dist/foo-1.0.win32.exe
("foo" является примером, конечно).
Перейдите в каталог с пакетом python и удалите файл.egg, например: В python 2.5(ubuntu): /usr/lib/python2.5/site-packages/
В Python 2.6(Ubuntu): /usr/local/lib/python2.6/dist-packages/
Установить с локального python setup.py install
Удалить из локального pip uninstall mypackage
Вероятно, вы можете сделать это в качестве альтернативы: -
1) Получить версию Python -
[linux machine]# python
Python 2.4.3 (#1, Jun 18 2012, 14:38:55)
-> Приведенная выше команда дает вам текущую версию Python, которая является 2.4.3
2) Получить каталог установки Python -
[linux machine]# whereis python
python: /usr/bin/python /usr/bin/python2.4 /usr/lib/python2.4 /usr/local/bin/python2.5 /usr/include/python2.4 /usr/share/man/man1/python.1.gz
-> Из приведенной выше команды вы можете получить каталог установки, который находится в - /usr/lib/python2.4/site-packages
3) Отсюда вы можете удалить пакеты и файлы python egg
[linux machine]# cd /usr/lib/python2.4/site-packages
[linux machine]# rm -rf paramiko-1.12.0-py2.4.egg paramiko-1.7.7.1-py2.4.egg paramiko-1.9.0-py2.4.egg
Это сработало для меня.. И я смог удалить пакет, который беспокоил меня:)
В {virtualenv}/lib/python2.7/site-packages/
(если не использовать virtualenv, тогда {system_dir}/lib/python2.7/dist-packages/
)
- Удалите файл с яйцом (например,
distribute-0.6.34-py2.7.egg
) - Если есть из файла
easy-install.pth
удалите соответствующую строку (это должен быть путь к исходному каталогу или к файлу яйца).
Я думаю, что вы можете открыть setup.py, найти имя пакета, а затем попросить pip удалить его.
Предполагая, что имя доступно в переменной 'METADATA':
pip uninstall $(python -c "from setup import METADATA; print METADATA['name']")
Продолжая сказанное Мартином, запись выходных данных установки и небольшой сценарий bash делают свое дело довольно хорошо. Вот что я делаю...
for i in $(less install.record);
sudo rm $i;
done;
И престо. Инсталлированных.
Если у вас все еще есть файлы, которые предполагается удалить после повторной установки пакета, убедитесь, что папка build
также удаляется. Следовательно, предполагая, чтоpkg
это пакет, который вы хотите удалить:
rm -r $(python3 -c "import pkg; print(pkg.__path__[0] + '*' )")
rm -rf build
Выше поработайте для python3 и удалите пакет и его файл *.egg-info
В какой-то момент я случайно запускал "python setup.py install" в своей глобальной среде, и мне было очень трудно удалить его. Эти решения не помогли. "pip uninstall" не работал с "Не могу удалить" splunk-appinspect ". Не найдено файлов для удаления". "sudo pip uninstall" не работает "Невозможно удалить требование splunk-appinspect, не установлено". Я попытался удалить pip, удалить кэш pip, найти пакет на моем жестком диске и т. Д.
"pip show" в конечном итоге привело меня к решению, "Location:" указывало на каталог, и переименование этого каталога привело к удалению упакованного из списка pip. Я переименовал каталог обратно, и он не появился в списке pip, и теперь я могу переустановить свой пакет в virtualenv.
У меня есть ссылка на разработчика, настроенная с
python setup.py develop
в среде conda и с
pip uninstall <packagename>
ссылка на яйцо удалена. По крайней мере, в этом сценарии
pip uninstall
- один из способов сделать это.
Может быть, лучше удалить связанные файлы, используя bash для чтения команд, например:
sudo python setup.py install --record files.txt
sudo bash -c "cat files.txt | xargs rm -rf"
Я бегал python setup.py install
Оказавшись в моем PyCharm, он устанавливает все пакеты в мою базовую среду conda. Позже, когда я захочу удалить все эти пакеты, pip uninstall
не работает. Мне пришлось удалить их из /anaconda3/lib/python3.7/site-packages вручную:(
Поэтому я не вижу причины, по которой они используют файл setup.py вместо записи файла needs.txt. Файл требований может использоваться для установки пакетов в виртуальной среде и не будет связываться с пакетами системного Python.