site_logo

파이썬 모듈 import 실패할 때 간단한 해결 방법

ImportError: cannot import name ‘XX’ from ‘XXX’

AttributeError: module ‘XXX’ has no attribute ‘XX’

이러한 터미널 에러로 애 먹고 있는가?! 💢💢 파이썬 모듈 import에 자꾸 실패할 때, ‘이것’만 확인해도 해결할 수 있다. 사족을 건너뛰고 골자만 취하고 싶다면 아래로 스크롤 하시길.

서론

지난 수요일, 기존 자동화 프로젝트 + 셀레니움 사용한 모듈을 합치는 과정에서 뭔가가 계속 꼬여 머리통을 터뜨릴 뻔 했었다. 게다가 금요일까지 마감해야하는 스토리보드 업무도 있었기 때문에 더 건드리지도 못하고 있었다. 풀리지 않은 과제로 마음 한켠이 답답했다.

그러나! 이럴 땐 잠을 자고 머리를 정리한 다음 다시 차근차근 접근하면 해결될 것을 알고 있었기에 우선 스토리보드 업무를 먼저 끝낸 다음 푹 자고, 주말에는 맘 편히 내려놓고 놀러 다니며 즐겨주었다.

파이참 closing project 무한 로딩

괜히 건드리다가 전체가 꼬일 수도 있기 때문에 프로젝트를 복제한 후 작업을 하려고 했다. 그런데 이상하게 파이참에서 closing project 펜딩이 무한으로 걸리는 문제 때문에 새 프로젝트를 열 수가 없게 되었다. 대충 구글링 해보니까 파이참 버전 업데이트와 logs 관련된 문제로 추정되는데 간단히 해결될만한 문제는 아닌 것 같아서 VS code로 갈아타버렸다. 그래도 되나 싶었지만 직접 해보니까 잘 되더라능~

작업 순서

다시 개별 모듈 작동 잘 하는지 확인을 마친 후에 임포트 작업을 시작했다. A 라는 파이썬 파일에 crawlingcharturl 라는 파이썬 파일의 charturl() 함수를 임포트하여 사용하고 싶었다.

① 우선 A 파일 상단에 임포트 코드를 넣어주었다.

import crawlingcharturl

② 그리고 모듈을 사용할 함수 부분에 변수를 지정해줬다.
아래처럼 [파일명.함수명] 형식으로 정의해주면 된다.

url = crawlingcharturl.charturl()

+ 또는 아예 상단 임포트 코드를 이렇게 작성해도 된다.

from crawlingcharturl import charturl

이 경우 모듈 사용 부분에서 변수는 이렇게 지정하면 될 것이다.

url = charturl()

③ 그리고 셀레니움으로 가져온 해당 데이터가 필요한 부분에 앞서 정의해준 변수를 아래 형식으로 넣어주었다.

{url}

④ 제대로 작동할지 기대하며 파이썬 파일을 실행해줬다. 그리고 문제가 생겼다.

오류 해결하기

ImportError: cannot import name ‘charturl’ from ‘crawlingcharturl’
AttributeError: module ‘crawlingcharturl’ has no attribute ‘charturl’

파이썬 파일을 실행하자 갖가지 종류의 임포트 에러가 뜨는 것이었다. 분명히 모듈 지정을 확실하게 해 주었고 함수 세팅도 확실한데 왜 이런 오류가 나오는 것일까? 챗GPT에게 물어보았다.

파이썬 import 오류 챗GPT 답변

1번과 3번 항목은 해당사항이 없었지만 2번 항목에 눈길이 갔다. 내가 파일 저장을 안했던가..?
반신반의하는 마음으로 ‘crawlingcharturl’ 파일을 열고 Ctrl + S 를 눌러 저장해주었다.

그러고 나서 A 파일을 실행하니까 거짓말같이 제대로 작동되었다. 😱 너무 간단하잖아!!
챗GPT에 따르면 종종 파일이 저장되기 전에 수정 사항을 저장하지 않아 이러한 문제가 발생할 수 있다고 한다. 만약 import 관련 에러로 고생 중이라면 해당 모듈을 저장하고 실행해보길 권한다~

마치며…

지난 주엔 셀레니움 자체를 다루는 데 너무 집중하느라 숲을 제대로 못 보고, A 모듈과 합치는 과정이 미흡했던 것 같다. 그래서 뭔가 이상한 실수를 해서 디렉토리를 꼬이게 만든 것 같다. 시간이 지나고 머리를 정리한 뒤에 다시 차근차근 해보았더니 너무 깔끔하게 해결되었다.

이렇게 나의 셀레니움 테스트도 성공리에 마무리되었다! 새로운 무기가 생겼으니 이걸 기반으로 앞으로 여러 가지를 꾸며보도록 하겠다😏

🍀함께 보면 도움되는 글🍀
파이참 터미널 실행 방법 (메뉴 위치, 단축키)
git push 안되는 문제 해결하기 (Pycharm, GitHub)
cron expressions (크론 표현식) 초간단 정리

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Scroll to Top
yellow-solid

Social Media

Blog