我有一个Python应用程序,可以通过pkg_resources.iter_entry_points查找插件。

当直接从源结帐运行时,它将在sys.path中找到符合条件的任何内容,包括恰好具有可找到的.egg-infosetuptools查找的源结帐。

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

  • 为什么普通源 checkout v。所安装的应用程序的pkg_resources.iter_entry_points表现不同?
  • 如何使其像开发中那样遍历sys.path中的所有内容?
  • 最佳答案

  • 如何使其遍历sys.path?
    pkg_resources.WorkingSet(None).iter_entry_points
  • 为什么表现不同?可能是因为已安装的程序包至少将有关其自身的元数据强制进入了内存。查看代码,我猜想您的主模块具有要求属性,但这只是有根据的猜测。无论如何,要在开发时强制执行“已安装”行为,应足以运行python setup.py develop
  • 关于python - 为什么我安装的应用程序对pkg_resources.iter_entry_points的处理方式与源代码中的处理方式不同?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22309352/

    10-14 17:37
    查看更多