Как загрузить конфиг в библиотеку Python?

Рейтинг: 1Ответов: 1Опубликовано: 10.03.2023

Доброй ночи. Есть вот такая библиотека:

lib/
│
├── lib/
│     ├── __init__.py
│     ├── main.py
│     └── config.py
├── LICENSE
├── README.md
├── setup.cfg
└── setup.cpy

После загрузки и установки библиотеки, пытаюсь импортировать библиотеку:

import lib

И мне выходит такая ошибка:

ModuleNotFoundError: No module named 'config'

Структура setup.py файла:

from setuptools import setup, find_packages

def readme():
  with open('README.md', 'r', encoding='utf-8') as f:
    return f.read()

setup(
  name='lib',
  version='1.0.7',
  author='author',
  author_email='author@gmail.com',
  description='some desc',
  long_description=readme(),
  long_description_content_type='text/markdown',
  url='url',
  packages=find_packages(),
  classifiers=[
    'Programming Language :: Python :: 3.10',
    'License :: OSI Approved :: MIT License',
    'Operating System :: OS Independent'
  ],
  keywords='python',
  project_urls={
    'Documentation': 'docs'
  },
  python_requires='>=3.7'
)

Вот код init.py файла:

import main
import config

Что делать - незнаю. Буду благодарен за любую помощь.

Ответы

▲ 2Принят

Можете попробовать добавить файл config.py в список экспортируемых модулей, которые будут доступны после установки библиотеки.

  1. В структуру setup.py файла добавьте package_data аргумент, следующим образом:
...

setup(
  ...
  packages=find_packages(),
  package_data={
    'lib': ['config.py']
  },
  classifiers=[
    'Programming Language :: Python :: 3.10',
    'License :: OSI Approved :: MIT License',
    'Operating System :: OS Independent'
  ],
  ...
)
  1. Так же необходимо добавить префикс lib в init.py файл:
import lib.main
import lib.config

После переустановки пакета, модуль config должен стать доступным для импорта из lib