У меня есть небольшой проект python2/3 со структурой каталоговГде разместить метаинформацию (__version__ и т. Д.) В проекте Python?
superproject/
-> __init__.py
-> meta.py
setup.py
Файл __init__.py
содержит кучу import
с и фактическим кодом, мета имеет
__author__ = 'John Doe'
__author_email__ = '[email protected]'
__version__ = '1.2.3'
# [...]
Я хотел бы сделать мета-информация доступна в файле setup.py (простой: только import superproject.meta
) и в superproject
как
import superproject
print(superproject.__version__)
Я борюсь с последним требованием. При выполнении
from .meta import *
в __init__.py
, я могу сделать только
print(superproject.meta.__version__)
, например.
Обратите внимание, что я не могу поставить мета данные в __init__.py
непосредственно, так как я должен был бы import superproject
в setup.py
, а также многочисленные import
зависимости от superproject
не доступны тогда еще.
Любые подсказки?
Дополнительные опции для этой, по-видимому, неразрешимой проблемы: https://packaging.python.org/single_source_version/ – jwodder
@jwodder Именно то, что я искал. Если вы продвинете это для ответа, я буду рад отметить это решение. –
см. Также [bumpversion] (https://pypi.python.org/pypi/bumpversion) – user25064