(24.03) no module named ‘generated_script’ 에러 해결하기

<(24.03) no module named ‘generated_script’ 에러 해결하기>

저번에 PyQt5나 Qt designer나 어려운 얘기들을 많이 했었다.

원래는 코딩전용 블로그는 아니지만 나처럼 문외한들을 위해서

왜 이런 에러가 나오는지에 대해서 해결방법을 찾아올수도있으니까!

작성한다 저번에 작성했던 코드를 다시 확인해보자

반발경도시험 코드

<해당 코드>

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from datetime import datetime
from generated_script import Ui_MainWindow  # Import the generated script

class MyApp(QMainWindow):
    def __init__(self):
        super().__init__()

        # Set up the user interface from Designer.
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        # Connect signals and slots
        self.ui.calculate_button.clicked.connect(self.calculate)

    def calculate(self):
        # Get input values from the UI
        input_date_str = self.ui.date_lineEdit.text()
        Ro = float(self.ui.ro_lineEdit.text())
        item_name = self.ui.item_lineEdit.text()
        impact_angle = float(self.ui.impact_angle_lineEdit.text())

        # Calculate days since input
        input_date_obj = datetime.strptime(input_date_str, "%Y%m%d")
        current_date = datetime.now()
        days_since_input = (current_date - input_date_obj).days

        # Calculate adjustment factor
        adjustment_factor = self.calculate_adjustment_factor(days_since_input)

        # Calculate impact angle correction
        angle_correction = self.calculate_impact_angle_correction(impact_angle, Ro)

        # Calculate values
        calculated_value_1 = -18.0 + (1.27 * Ro)
        calculated_value_2 = ((7.3 * Ro) + 100.0) * 0.098

        # Apply adjustment factor
        calculated_value_1 *= adjustment_factor
        calculated_value_2 *= adjustment_factor

        # Calculate adjusted values
        adjusted_calculated_value_1 = round(calculated_value_1 * adjustment_factor, 2)
        adjusted_calculated_value_2 = round(calculated_value_2 * adjustment_factor, 2)

        # Display results in UI
        self.ui.result_textEdit.clear()
        self.ui.result_textEdit.append(f"Ro 값: {Ro}")
        self.ui.result_textEdit.append(f"항목 이름: {item_name}")
        self.ui.result_textEdit.append(f"타격각도: {impact_angle}")
        self.ui.result_textEdit.append(f"타격각도 보정계수: {round(angle_correction, 2)}")
        self.ui.result_textEdit.append(f"입력된 값에 대한 일본재료학회 결과값: {round(calculated_value_1, 2)} MPa")
        self.ui.result_textEdit.append(f"입력된 값에 대한 일본재료학회 추정압축강도: {adjusted_calculated_value_1} MPa")
        self.ui.result_textEdit.append(f"입력된 값에 대한 일본건축학회 결과값: {round(calculated_value_2, 2)} MPa")
        self.ui.result_textEdit.append(f"입력된 값에 대한 일본건축학회 추정압축강도: {adjusted_calculated_value_2} MPa")

    def calculate_adjustment_factor(self, days_since_input):
        if days_since_input <= 0:
            return 1
        elif days_since_input <= 100:
            return 1 - days_since_input * 0.0005
        elif days_since_input <= 300:
            return 0.78 - (days_since_input - 100) * 0.00008
        elif days_since_input <= 500:
            return 0.7 - (days_since_input - 300) * 0.00006
        elif days_since_input <= 1000:
            return 0.67 - (days_since_input - 500) * 0.00002
        elif days_since_input <= 3000:
            return 0.65 - (days_since_input - 1000) * 0.00002
        else:
            return 0.63

    def calculate_impact_angle_correction(self, impact_angle, Ro):
        return impact_angle / 90 * (25.3 + (0.08 * (Ro - 30)) - 30)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MyApp()
    window.show()
    sys.exit(app.exec_())

당연히 별다른 내용은 없지만 이대로 비주얼 스튜디오로 열어서 실행시키면

에러가 하나 뜬다 no module named ‘generated_script’

라고 하면서 나오는 에러가 있는데 원래는 말 그대로

해당 이름의 모듈을 불러올 수 없다는 뜻이다

no module named ‘generated_script’ 에러

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from datetime import datetime
from generated_script import Ui_MainWindow  # Import the generated script

이 코드부분을 잘 살펴보면

# Import the generated script

라고 쓰여있는데 이것은 주석이다

즉 말하자면 from 이후에 생성된 ui 파일을 불러온다는 뜻이다

즉 ui 파일의 이름을 generated_script.ui 로 수정하던가

아지면 from 이후에 이름을 파일명으로 수정해주면 된다

간단한 에러에 꽤 긴시간을 날려먹었다…

성장통이라고 생각하자

<이전 작업내용>