ABAQUS 파이썬 스크립트 오류 해결 방법

1. 모듈 및 파일 경로 오류

ImportError 발생 시 주로 PYTHONPATH 환경변수 미설정이 원인입니다. 파이썬 인터프리터는 PYTHONPATH에 등록된 경로에서만 모듈을 검색합니다.

# 오류 예시
Traceback (most recent call last):
  File "script.py", line 5, in <module>
    from core.utils import helper
ImportError: No module named core.utils

해결 방법:

import sys
import os

module_dir = os.path.dirname(os.path.abspath(__file__))
project_root = os.path.dirname(module_dir)
sys.path.insert(0, project_root)

2. 파일 쓰기 버전 충돌

CSV 파일 저장 시 newline 매개변수 사용으로 발생하는 TypeError는 파이썬 2/3 버전 차이 때문입니다.

# 오류 발생 코드
with open('data.csv', 'w', newline='') as f:
    writer = csv.writer(f)

버전 호환성 해결:

import sys
import csv

if sys.version_info[0] >= 3:
    file_mode = {'mode': 'w', 'newline': ''}
else:
    file_mode = {'mode': 'wb'}

with open('output.csv', **file_mode) as f:
    csv_writer = csv.writer(f)
    csv_writer.writerows(data_rows)

3. 속성 참조 오류

AttributeError는 존재하지 않는 객체 속성에 접근 시 발생합니다.

# 오류 예시
data_processor = DataProcessor()
data_processor.load_config()  # AttributeError

주요 해결 방안:

  • 클래스 생성자(__init__)에서 속성 초기화 확인
  • 메서드 이름 오타 검증
  • 상속 구조에서 부모 클래스 메서드 확인

4. 호출 불가능 객체 오류

TypeError: 'xxx' object is not callable은 함수와 변수 이름 충돌로 발생합니다.

# 오류 발생 시나리오
data = [1, 2, 3]
len = len(data)  # 변수 이름 충돌
result = len([10, 20])  # TypeError

해결 절차:

  1. 호출문 () 앞의 식별자 확인
  2. 동일 이름의 변수/함수 중복 검사
  3. 충돌 시 변수명 변경

5. 로깅 시스템 구성

파일/콘솔 동시 출력 로거 설정:

import logging

def setup_logger(log_file, logger_name):
    logger = logging.getLogger(logger_name)
    logger.setLevel(logging.DEBUG)
    
    # 파일 핸들러 구성
    file_handler = logging.FileHandler(log_file, encoding='utf-8')
    file_handler.setLevel(logging.INFO)
    file_format = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    file_handler.setFormatter(file_format)
    
    # 콘솔 핸들러 구성
    console_handler = logging.StreamHandler()
    console_handler.setLevel(logging.WARNING)
    
    logger.addHandler(file_handler)
    logger.addHandler(console_handler)
    return logger

# 사용 예시
app_logger = setup_logger('app.log', 'application')
app_logger.info("시스템 시작")

태그: ABAQUS python 오류해결 ImportError TypeError

7월 19일 02:10에 게시됨