Я пытаюсь включить файл python в каталог build / lib, созданный при запуске
python setup.py install
В частности, я хотел бы включить простой файл конфигурации ('definitions.py'), который определяетпеременная ROOT_DIR, которая затем используется подпакетами.Файл 'definitions.py' содержит:
import os
ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
Моя цель состоит в том, чтобы файлы конфигурации в каждом подпакете ('config.py') вызывали ROOT_DIR для создания своих собственных абсолютных путей:
from definitions import ROOT_DIR
PACKAGE_DIR = os.path.join(ROOT_DIR, 'package1/')
Идея взята из этого ответа на стек: https://stackoverflow.com/a/25389715.Тем не менее, этот файл «Definition.py» никогда не отображается в каталоге сборки при запуске «setup.py install».
Вот структура каталогов проекта:
project
|
├── setup.py
|
├── definitions.py
|
├── package1
| ├── __init__.py
| ├── config.py
| └── ...
|
├── package2
| ├── __init__.py
| └── ...
└── ...
Мои многочисленные попытки не увенчались успехом (пытались, например, предложения, предложенные в https://stackoverflow.com/a/11848281). Насколько яМожно сказать, это потому, что Definition.py находится на верхнем уровне структуры моего проекта (в котором отсутствует файл __init__.py).
Я пытался:
1) ... с помощью переменной 'package-data' в setuptools.setup ()
package_data={'package': ['./definitions.py']}
но определение .py не отображается в сборке (я думаю, потому что defines.py отсутствует в «пакете» с __init__.py?).
2) ... с использованием файла MANIFEST.in, но это также не работает (я думаю, потому что MANIFEST не работает с .py файлами?)
Мой вопрос: Есть ли способ включить определения .py в каталог сборки?Или есть ли лучший способ обеспечить доступ к абсолютным путям, созданным из каталога верхнего уровня для нескольких подпакетов?