我有使用如下入口点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安装目录,但是什么也没找到。
如何删除它?
答案 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}},系统软件包管理器)。