Reputation: 109
I'm receiving an ImportError when running my main script which is related to another script trying to import one of my modules and I'm unsure how to fix it. The layout of the files in relation to the software is as follows (folder names etc are fictional):
poetry_generator/main.py
poetry_generator/architecture/experts/poetryexperts/sentence.py
poetry_generator/structures/word.py
Main.py is what I'm running, and the problem seems to arise from sentence.py trying to import word module and failing.
Currently in sentence.py I have:
from poetry_generator.structures.word import Word
Word is the name of the Class in word.py: Class Word(object). But I'm receiving the following error: ImportError: No module named poetry_generator.structures.word
Does anyone have any idea what is wrong? I have been readinga roudn similar questions already asked but nothing has worked so far. Thanks in advance for any help.
Full console text reagarding error:
Traceback (most recent call last):
File "main.py", line 1, in <module>
from architecture.control_component import ControlComponent
File "/home/lee/Downloads/PoEmo-master/poetry_generator/architecture/control_component.py", line 4, in <module>
from experts.poem_making_experts import exclamation_expert
File "/home/lee/Downloads/PoEmo-master/poetry_generator/architecture/experts/poem_making_experts/exclamation_expert.py", line 5, in <module>
from poetry_generator.structures.word import Word
ImportError: No module named poetry_generator.structures.word
Upvotes: 4
Views: 15589
Reputation: 27869
You will need
import sys
sys.path.insert(0, 'System/structures/word')
#or
sys.path.append('System/structures/word')
import Word
Otherwise you will need __init__.py
that you can make with these instructions.
Upvotes: 2
Reputation: 136880
The top-level project directory shouldn't be included in the module name. This should work:
from structures.word import Word
Upvotes: 4