我有一个Python应用程序,通过pkg_resources.iter_entry_points
寻找插件。
当直接从源代码签出运行时,这将在sys.path
中找到符合要求的任何内容,包括源代码签出碰巧有适用的.egg-info
供setuptools
查找。
然而,当我通过python setup.py install
在任何地方安装包时,它突然停止检测sys.path
中枚举的所有内容,而只查找与site-packages
一起安装的内容。
- 为什么
pkg_resources.iter_entry_points
的行为不同于香草源签出与安装的应用程序? - 我如何使它遍历
sys.path
中的一切,因为它在开发中?
-
如何让它迭代sys.path?
pkg_resources.WorkingSet(None).iter_entry_points
-
为什么它的行为不同?可能是因为安装的包至少强制将有关自身的元数据放入内存中。查看代码,我的猜测是主模块有一个require 属性,但这只是一个有根据的猜测。无论如何,要在开发时强制"安装"行为,运行
python setup.py develop
应该足够了