gpt4 book ai didi

python - 为什么我安装的应用程序处理 pkg_resources.iter_entry_points 的方式与源代码不同?

转载 作者:太空狗 更新时间:2023-10-29 21:11:11 25 4
gpt4 key购买 nike

我有一个 Python 应用程序,它通过 pkg_resources.iter_entry_points 寻找插件。

当直接从源 checkout 运行时,这将在 sys.path 中找到符合要求的任何内容,包括碰巧具有适用的 .egg-info 的源 checkout 为 setuptools 找到。

然而,当我通过 python setup.py install 在任何地方安装包时,它突然停止检测 sys.path 中枚举的所有内容,而只查找已安装的内容在 site-packages 中与它一起。

  • 为什么 pkg_resources.iter_entry_points 对于 vanilla 源 checkout 和安装的应用程序表现不同?
  • 如何让它遍历 sys.path 中的所有内容,就像在开发中一样?

最佳答案

  1. 如何让它遍历 sys.path?

    pkg_resources.WorkingSet(None).iter_entry_points

  2. 为什么它的行为不同?可能是因为已安装的软件包至少将有关自身的元数据强制放入内存中。查看代码,我的猜测是您的主模块具有 requires 属性,但这只是一个有根据的猜测。无论如何,要在开发时强制执行“已安装”行为,运行 python setup.py develop

  3. 应该就足够了

关于python - 为什么我安装的应用程序处理 pkg_resources.iter_entry_points 的方式与源代码不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22309352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com