Traceback (most recent call last):
File “main.py”, line 3, in
from src.core.bot_app import start_app
ModuleNotFoundError: No module named ‘src.core’
Какая тут проблема?
Oh, I see.
Can you add these lines of code:
from src import core
from core import file
I see that you are trying to import a file from the core
folder. Note that you’ll need to replace file
with the name of the file.
Hope this helps!
How can I add these lines to the code?
Hi @exibexi !
You can replace the lines from src.core.bot_app import start_app
with the above 2 lines of code.
@exibexi Ok, I’ve got it:
with open('src/core/bot_app.py' ):
start_app()
Hope this helps!
Note: This was a nudge by ChatGPT, an AI. iT did not write this code, but I shortened it and adapted it. (I added a slash in my own idea, it removed it, making it work)
Am I doing something wrong?
Try removing the with
block from before, then run poetry remove src
You should put __init__.py
files in src
and src/core
, and this will fix the problem. Then in main.py
, revert the code back to the original imports you used.
In python, never forget to put an __init__.py
file in all of your packages! This will help python more easily find your package.
Definitely don’t use open()
as a way to import python files!
What caused the ModuleNotFoundError?
Checking a hidden directory .pythonlibs/lib/python3.10/site-packages
, we see there is a different unrelated src
package that python has been importing. This other package obviously doesn’t contain a core
package, so an error occurs.
In the shell, we can easily debug the problem. This also showed in the error message in post 7.
import src
print(src.__file__)
# home/runner/PricklyMiniatureCache/.pythonlibs/lib/python3.10/site-packages/src/__init__.py
By adding an __init__.py
file to our src
, python can ‘see’ it before the other src
package (simplification).
Now it’s correct and everything works:
import src
print(src.__file__)
# home/runner/PricklyMiniatureCache/src/__init__.py