如何卸载setuptools插件?

时间:2018-11-21 15:00:00

标签: python-3.x plugins setuptools

我有使用如下入口点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安装目录中也没有任何内容。)这个插件仍然存在。

我已经遍历整个anaconda安装目录,但是什么也没找到。

如何删除它?

1 个答案:

答案 0 :(得分:1)

如注释中所述,如果加载了入口点,则可以通过调用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目录,或者(根据您的情况)是一个归档文件(例如,鸡蛋,车轮,zip文件等)。无论哪种方式,您都将获取软件包的名称和版本(在本例中为dummy_subscriber==0.0.2),然后可以尝试使用用于安装的软件包管理器(pip,{{ 1}},系统软件包管理器)。