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. Надо и про них поситать.