Jac*_*own 5 python resources setuptools python-importlib
似乎非 python 资源包含在 python 分发包中的四种方式之一:
setup.py(用于在python 导入包中包含资源)setup.py(用于包含python 导入包之外的资源)setuptools-scm(我相信它使用你的版本控制系统来查找资源而不是manifest.in或其他东西)其中哪些可以从 访问importlib.resources?
(据我了解,这importlib.resources是访问此类资源的首选方式。)如果其中任何一个无法通过 访问importlib.resources,那么人们如何能够/应该访问这些资源?
网上其他人因使用查找资源路径的建议而受到责骂__file__,因为安装的 Wheel 发行版可能存储为 zip 文件,因此甚至不会有正确的资源路径。轮子什么时候被提取到站点包中以及什么时候它们保持拉链状态?
所有 (1)-(3) 都会将文件放入您的包中(不知道 (4))。在运行时,importlib.resources将能够访问包中的任何数据。至少Python 3.9可以访问子目录中的资源。以前,您必须通过添加__init__.
至于为什么不使用__file__:Python 的导入系统有一些奇怪的方法来解析包。例如,如果您使用 Zipapp,它可以在 zip 文件中查找它们。您甚至可能有一个自定义加载程序,用于要求您从中加载一些资源的包。谁知道这些资源在哪里?答:导入lib.resources。
老实说,车轮不是一个竞争者,因为它们是拆开包装的。
| 归档时间: |
|
| 查看次数: |
1194 次 |
| 最近记录: |