Похоже, что ресурсы, отличные от Python, включаются в дистрибутивы Python одним из 4-х способов:
- Файл Manifest.in (я не уверен, когда это предпочтительнее, чем package_data или data_files)
- package_data в
setup.py
(для включения ресурсов внутри пакетов импорта python) - data_files в
setup.py
(для включения ресурсов вне пакетов импорта python) - что-то под названием
setuptools-scm
(которое, я полагаю, использует вашу систему контроля версий для поиска ресурсов вместо manifest.in или чего-то еще)
Какие из них доступны из
importlib.resources
?
(Насколько я понимаю,importlib.resources
является предпочтительным способом доступа к таким ресурсам.) Если какие-либо из них недоступны черезimportlib.resources
, то как можно/должно один доступ к таким ресурсам?Другие люди в сети ругались за предложение использовать
__file__
для поиска пути к ресурсу, потому что установленные дистрибутивы колеса могут храниться в виде zip-файлов, и поэтому не будет даже правильного пути к вашим ресурсам. Когда колеса извлекаются в пакеты сайтов, а когда остаются заархивированными?