Как импортировать файл пакетом __init__.py
Есть 2 дирректории:
Doctor_Bot/config/hidden.py
и
Doctor_Bot/bot_start/script.py
hidden.py:
token = 'Токен'
script.py:
from config.hidden import token
print(hidden.token)
Ошибка:
ModuleNotFoundError: No module named 'config'
Я понимаю что надо смотреть в сторону __init__.py, дабы сделать из папки пакет, но как правильно его применить я понять не могу.
Вот скриншоты самого кода и иерархии папок:


Ответы (2 шт):
Python определяет пути для модулей в переменной path. Вам нужно добавить в path путь к родительской папке, откуда можно будет импортировать модуль config.
from sys import path
path.append(path[0].replace(path[0].split('\\')
[len(path[0].split('\\')) - 1], ''))
from config.hidden import token
При вашей структуре файлов (все лежит в папке Doctor_Bot), чтобы все файлы друг к другу могли обращаться через импорт, сама папка Doctor_Bot должна считаться общим пакетом.
Тогда нужно заменить импорты, например, на относительные :
from ..config.hidden import token
или абсолютные, с указанием основного пакета:
from Doctor_Bot.config.hidden import token
И запускать вашего бота извне пакета через
python -m Doctor_Bot.bot_start.script
Но в этом случае удобнее было бы, чтобы папкой проекта была не сама папка Doctor_Bot, а папка на уровень выше. Для удобства запуска снаружи Doctor_Bot можно создать пусковой файл такого вида:
run.py
import Doctor_Bot.bot_start.script
Скриншот, в терминале первый запуск через "треугольник" в файле run.py, второй - просто через командную строку без пускового файла:
