ModuleNotFoundError: No module named 'settings'

Я уже не могу. И сиспас проверил, и добавил в него, и .. поставил перед сеттингсом, и сам сеттингс занёс в сиспас, и инит прописал в пакете, что надо, и вообще в системную переменную пайтонпас добавил /home/lomalo890/Desktop/Portfolio/TelebotCafe/settings. Ничего не работает. В сеттингсе у меня конфиг, а там и класс. А он никак.

Вот код

import logging

from telegram.ext import Application as PTBApplication, ApplicationBuilder
from settings.config import AppSettings ЗДЕСЬ ПРОБЛЕМА!
from app.handlers import HANDLERS

class Application(PTBApplication):
    def __init__(self, app_settings: AppSettings, **kwargs):
        super().__init__(**kwargs)
        self._settings = app_settings
        self._register_handler()

    def _register_handler(self):
        for handler in HANDLERS:
            self.add_handler(handler)

    def run(self) -> None:
        self.run_polling()

Вот структура папок: (фото не могу добавить)

app
    main.py
settings
    config.py, класс которого и надо импортить

И вывод у меня вот такой:

Traceback (most recent call last):
  File "/home/lomalo890/Desktop/Portfolio/TelebotCafe/app/main.py", line 6, in <module>
    from settings.config import AppSettings
ModuleNotFoundError: No module named 'settings'

Что бы это могло быть?

Я ещё вот это делал:

sys.path.append('/home/lomalo890/Desktop/Portfolio/TelebotCafe/settings')

Но вы же знаете, что это сохранится только в рамках файла, верно? Даже если так, то у меня не работает.

Вот ещё мой сиспас

Before appending:
/home/lomalo890/Desktop/Portfolio/TelebotCafe/app/handlers
/usr/lib/python312.zip
/usr/lib/python3.12
/usr/lib/python3.12/lib-dynload
/home/lomalo890/.local/lib/python3.12/site-packages
/usr/local/lib/python3.12/dist-packages
/usr/lib/python3/dist-packages

Это один цикл с принтом. Потом я туда добавил /home/lomalo890/Desktop/Portfolio/TelebotCafe. Дальше вывел его же с доабвленным элементом.

nAfter appending:
/home/lomalo890/Desktop/Portfolio/TelebotCafe/app/handlers
/usr/lib/python312.zip
/usr/lib/python3.12
/usr/lib/python3.12/lib-dynload
/home/lomalo890/.local/lib/python3.12/site-packages
/usr/local/lib/python3.12/dist-packages
/usr/lib/python3/dist-packages
/home/lomalo890/Desktop/Portfolio/TelebotCafe

А когда я удаляю аппенд, у меня снова

/home/lomalo890/Desktop/Portfolio/TelebotCafe/app/handlers
/usr/lib/python312.zip
/usr/lib/python3.12
/usr/lib/python3.12/lib-dynload
/home/lomalo890/.local/lib/python3.12/site-packages
/usr/local/lib/python3.12/dist-packages
/usr/lib/python3/dist-packages

Короче, вот он:

import sys

print("Before appending:")
for i in sys.path:
    print(i)

sys.path.append('/home/lomalo890/Desktop/Portfolio/TelebotCafe')

print()
print("nAfter appending:")
for i in sys.path:
    print(i)

И это я делаю в другом файле!

Но даже если пишу в майне, а не в индексе (файл с кодом выше), то всё равно не работает.


Короче, я тупо снёс всё в один пакет. Проблема не решена. Слышал, что в питоне предусмотрены файлы pth. Надо и про них поситать.


Ответы (0 шт):