#python-3.x #exception #module
#python-3.x #исключение #модуль
Вопрос:
У меня проблема с импортом модулей в Python. Я делаю проект с PyQt и пытаюсь его реорганизовать и реструктурировать.
Иерархия следующая:
./main.py
./logic/__init__.py
./logic/transforms.py
./logic/hopfield.py
./gui/__init__.py
./gui/interface.py
./gui/mplwidget.py
./img
Ошибка:
Traceback (most recent call last):
File "...main.py", line 5, in <module>
from gui.interface import Ui_MainWindow
File ...guiinterface.py", line 215, in <module>
from mplwidget import MplWidget
ModuleNotFoundError: No module named 'mplwidget'
Файл interface.py
class Ui_MainWindow(object):
.
.
.
from mplwidget import MplWidget
Файл main.py
import sys
import matplotlib
import numpy as np
from gui.interface import Ui_MainWindow
from gui.weightMatrix import Ui_Dialog
from gui.table import TableModel
from logic.hopfield import learn, searchPattern
from logic.transforms import transformVector, transformVectors
from PyQt5 import QtCore, QtGui, QtWidgets
class Actions(Ui_MainWindow):
def __init__(self):
.
.
.
Я не понимаю, почему это не работает, так как внутри модуля, если я запускаю файл интерфейса, он отлично работает вместе с mplwidget
модулем.
Ответ №1:
Файл …guiinterface.py «, строка 215, в
из mplwidget импортируйте MplWidget
ваш interface.py
должен иметь
абсолютный импорт: from gui.mplwidget import MplWidget
или
относительный импорт: from .mplwidget import MplWidget
Кроме того, отличный блог, который объясняет два разных импорта
Комментарии:
1. Это решение. Это проще, чем я думал. Спасибо за информацию и быстрый ответ!