Удаление python setup.py
Я установил пакет python с python setup.py install
.
Как его удалить?
Ответы
Ответ 1
Примечание: избегайте использования python setup.py install
используйте pip install.
Вам необходимо удалить все файлы вручную, а также отменить любые другие действия, которые установка выполняла вручную.
Если вы не знаете список всех файлов, вы можете переустановить его с --record
опции --record
и взглянуть на этот список.
Для записи списка установленных файлов вы можете использовать:
python setup.py install --record files.txt
Если вы хотите удалить, вы можете использовать xargs для удаления:
xargs rm -rf < files.txt
Или, если вы используете 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'
Ответ 2
Для меня в основном работает следующее:
установлен пипс, например:
$ easy_install pip
Проверьте, как ваш установленный пакет называется с точки зрения pip:
$ pip freeze
В этом списке должны быть указаны имена всех пакетов, которые вы установили (и которые были обнаружены по протоколу).
Имя может быть когда-то длинным, а затем используйте только имя пакета, отображаемого в и после #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://[email protected]/vlcinsky/[email protected]#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 securitypip --upgrade
В некоторых системах (например, Debian Jessie) это недоступно (чтобы не допустить сбой системы python).
Использование grep
или find
Приведенные выше примеры предполагают, что у вас установлен grep
. У меня было (в то время, когда у меня была MS Windows на моей машине) был установлен набор утилит linux (включая grep). В качестве альтернативы, используйте собственную MS Windows find
или просто проигнорируйте эту фильтрацию и найдите имя в более длинном списке обнаруженных пакетов python.
Ответ 3
Ответ # 1 имеет проблемы:
- Не будет работать на Mac.
- Если файл установлен, который включает в себя пробелы или другие специальные
символов, команда
xargs
завершится с ошибкой и удалит все
файлы/каталоги, которые соответствуют отдельным словам.
-
-r
in 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
, которая не будет беспокоить вас в типичном случае. Более полный ответ см. на этой странице wiki:
https://ofswiki.org/wiki/Uninstalling_setup.py_install
Ответ 4
Сначала запишите файлы, которые вы установили. Вы можете повторить эту команду, даже если вы ранее запускали setup.py install
:
python setup.py install --record files.txt
Если вы хотите удалить, вы можете просто:
sudo rm $(cat files.txt)
Это работает, потому что команда rm принимает список файлов, разделенных пробелами, для удаления, и ваша запись установки является именно таким списком.
Ответ 5
Теперь Python дает вам возможность установить pip
во время установки (я на Windows, и, по крайней мере, Python делает это для Windows!). Учитывая, что вы решили установить pip
во время установки python (вам на самом деле не нужно выбирать, потому что это по умолчанию), pip
уже установлен для вас. Затем введите pip
в командной строке, вы должны увидеть помощь. Вы можете найти необходимые инструкции по использованию там. Например. pip list
показывает вам список установленных пакетов. Вы можете использовать
pip uninstall package_name
чтобы удалить любой пакет, который вам больше не нужен. Подробнее здесь (документация по пунктам).
Ответ 6
Ленточный способ: просто удалить из меню установки Windows (если вы используете Windows) или из команды rpm при первой переустановке после создания дистрибутива.
Например,
python setup.py bdist_wininst
dist/foo-1.0.win32.exe
(например, "foo" ).
Ответ 7
Перейдите в каталог пакета python и удалите файл .egg,
например.:
В python 2.5 (ubuntu):/usr/lib/python2.5/site-packages/
В python 2.6 (ubuntu):/usr/local/lib/python2.6/dist-packages/
Ответ 8
Возможно, вы можете сделать это в качестве альтернативы: -
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
[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
Это сработало для меня.. И мне удалось удалить пакет, который беспокоил меня:)
Ответ 9
Я думаю, вы можете открыть setup.py, найти имя пакета и затем попросить pip удалить его.
Предполагая, что имя доступно в переменной "METADATA":
pip uninstall $(python -c "from setup import METADATA; print METADATA['name']")
Ответ 10
Не совсем отвечая на вопрос, но помогая мне каждый день:
Установите ваши пакеты с
pip install .
Это помещает пакет в $HOME/.local
. Удалить с помощью
pip uninstall <package_name>
Ответ 11
Продолжая то, что сказал Мартин, запись вывода установки и немного скриптов bash делает трюк довольно красиво. Вот что я делаю...
for i in $(less install.record);
sudo rm $i;
done;
И престо. Инсталлированных.
Ответ 12
В какой-то момент я случайно запускал "python setup.py install" в своей глобальной среде, и мне было очень трудно удалить его. Эти решения не помогли. "pip uninstall" не работал с "Не могу удалить" splunk-appinspect ". Не найдено файлов для удаления". "sudo pip uninstall" не работает "Невозможно удалить требование splunk-appinspect, не установлено". Я попытался удалить pip, удалить кэш pip, найти пакет на моем жестком диске и т.д.
"pip show" в конечном итоге привело меня к решению, "Location:" указывало на каталог, и переименование этого каталога привело к удалению упакованного из списка pip. Я переименовал каталог обратно, и он не появился в списке пипсов, и теперь я могу переустановить свой пакет в virtualenv.
Ответ 13
Я однажды запустил python setup.py install
в моем PyCharm, он установил все пакеты в мою базовую среду conda. Позже, когда я хочу удалить все эти пакеты, pip uninstall
не работает. Мне пришлось удалить их из /anaconda3/lib/python3.7/site-packages вручную :(
Так что я не вижу причины, по которой они используют setup.py вместо записи файла require.txt. Файл требований может быть использован для установки пакетов в виртуальной среде и не будет связываться с пакетами системного Python.
Ответ 14
Если у вас все еще есть файлы, которые должны быть удалены после переустановки пакета, убедитесь, что папка build
также удалена. Поэтому предположим, что pkg
- это пакет, который вы хотите удалить:
rm -r $(python3 -c "import pkg; print(pkg.__path__[0] + '*' )")
rm -rf build
Изучите Python3 и удалите пакет и его файл *.egg-info.
Ответ 15
В {virtualenv}/lib/python2.7/site-packages/
(если не использовать virtualenv, то {system_dir}/lib/python2.7/dist-packages/
)
- Удалите файл с яйцами (например,
distribute-0.6.34-py2.7.egg
)
- Если есть что-либо из файла
easy-install.pth
, удалите соответствующую строку (это должен быть путь к исходному каталогу или к файлу яйца).
Ответ 16
Возможно, лучше удалить связанные файлы, используя bash для чтения команд, например:
sudo python setup.py install --record files.txt
sudo bash -c "cat files.txt | xargs rm -rf"