.ini-файлы верхнего уровня в пирамиде являются «файлами данных, не являющимися пакетами», то есть в каталоге, в котором они находятся, нет __init__.py
. Это как-то означает, что они не будут включены в архив яиц, сгенерированный с помощью setup.py bdist_egg
, даже если ваши условия 1 и 2 выполнены.
Чтобы включить такие «непакетные файлы данных», я думаю, что самый простой способ - добавить их как data_files
к setup()
, например,
setup(
...
data_files=[
('', [
'development.ini',
'production.ini',
]),
],
zip_safe=False,
...
)
Затем файлы будут включены в архив яиц на верхнем уровне, который можно получить с помощью:
import os
import pkg_resources
dist = pkg_resources.get_distribution('MyApp')
config_file = os.path.join(dist.location, 'production.ini')