Как удалить плагин setuptools? - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть пакет, который использует некоторую точку входа point, например:

subscribers = {
    entry_point.name: entry_point.load()
    for entry_point in pkg_resources.iter_entry_points('point')
}
__all__.extend(list(subscribers.keys()))

У меня когда-то был модуль, который определил DummySubscriber с этим кодом в setup.py файле

 entry_points={
          'point': [
              'DummySubscriber = dummy.dummy:DummySubscriber',
…

или аналогичный.Теперь, когда я iter_entry_points('point'), я также получаю этот плагин (или класс), несмотря на то, что пакет был удален (источник пропал, и в каталоге установки Anaconda ничего нет. Я в растерянности относительно того, как этоплагин все еще рядом

1 Ответ

0 голосов
/ 23 ноября 2018

Как отмечается в комментариях, если точки входа загружены, вы можете отследить их, вызвав утилиты pkg_resources:

In [1]: import os

In [2]: import pkg_resources

In [3]: print(os.linesep.join(('{}: {}'.format(ep.name, ep.dist.egg_info) for ep in pkg_resources.iter_entry_points('point'))))
DummySubscriber: /home/share/miniconda3/envs/torch/lib/python3.6/site-packages/dummy_subscriber-0.0.2-py3.6.egg/EGG-INFO

. Это напечатает источник пакета точки входа надиск.Либо это каталог *.dist-info, либо (как в вашем случае) архив (egg, wheel, zipfile и т. Д.).В любом случае, вы получите имя и версию пакета (в данном случае dummy_subscriber==0.0.2), который затем можете попытаться удалить с помощью менеджера пакетов, который вы использовали для установки (pip, easy_install, системный пакет).менеджер).

...