인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

오강현님의 프로필 이미지

작성한 질문수

실리콘밸리 데이터 리더가 알려주는 Airflow 기초

yfinance로 주식 데이터 읽어오기: 전체 업데이트 - 실습 포함

yfinance 주식 읽어 오기 처음 중, no module named helpers 에러

작성

·

25

1

airflow dags list를 하면 yfinance_to_snowflake_fullrefresh.py 에서 no module named helpers 에러가 떴습니다. pip3 install helpers 를 통해 설치를 했는데도, 동일한 에러가 발생하고 있습니다. (python은 homebrew 통해 설치했고, homebrew 설치 시에 패키지 전역 설치가 안된다는 문제가 있었는데, 이는 해결해서 helpers Install은 완료 했습니다.)

 

image.pngimage.pngimage.png

 

답변 2

0

한기용님의 프로필 이미지
한기용
지식공유자

질문 감사드립니다. helpers는 외부 모듈이 아니구요. 제가 제공한 GitHub Repo에 있는 모듈입니다. 이전 실습에서 자주 사용되던 몇 개의 함수를 재사용하기 위해서 util.py라는 파일을 만들었고 그걸 helpers라는 폴더안에 저장했습니다. 그러면 util.py에 정의된 함수들을 사용하기 위해서 아래와 같은 util을 임포트할 수 있습니다.

from helpers import util

이걸 앞 섹션의 "앞서 Airflow 예제를 개선해보자 (v6)" 챕터에서 설명했었는데 그 부분 다시 한번 보시는 걸 추천드립니다.
https://inf.run/YqWFj

airflow-bootcamp repo가 존재하는 폴더에서 아래 복사 명령을 실행하고 나면 해결되리라 믿습니다.

mkdir dags/helpers
cp dags_to_move/helpers/util.py dags/helpers

혹시라도 해결이 안되면 알려주세요!

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 오강현님.

yfinance_to_snowflake_fullrefresh.py 파일에서 발생하는 No module named 'helpers' 에러는 Airflow 환경의 파이썬 경로와 시스템에 설치된 파이썬 환경이 일치하지 않을 때 자주 발생하는 문제입니다. 이 문제를 해결하기 위해 몇 가지 방법을 제안드립니다.

  1. Virtual Environment 사용:
    먼저, Python 가상 환경을 사용하는 것이 좋습니다. 이는 패키지가 시스템 전체에 설치되는 것을 방지하고, 특정 프로젝트에서만 필요로 하는 패키지만을 설치 가능합니다.
   python3 -m venv airflow-env
   source airflow-env/bin/activate
   pip install helpers
  1. Airflow 환경에 패키지 설치하기:
    Airflow가 실행되는 환경에 패키지를 설치해야 합니다. Airflow가 system-wide Python 패키지 경로를 사용하지 않는 경우가 많기 때문에, Airflow가 사용하는 Python 인터프리터에 직접 설치하는 것이 필요합니다.
   which python  # Airflow에서 사용 중인 Python 확인
해당 경로를 확인한 후, 그 환경에 적합하게 패키지를 설치해 주세요.
  1. PYTHONPATH 설정:
    helpers 모듈이 Airflow에서 인식되지 않는 경우에는 PYTHONPATH를 설정하여 Python이 모듈을 찾을 수 있도록 환경 변수를 설정해 주세요:
   export PYTHONPATH=$PYTHONPATH:/path/to/helpers/module
  1. 패키지 버전 확인 및 재설치:
    설치한 helpers 패키지가 제대로 설치되었는지, 버전이 맞는지 확인 후, 문제가 있다면 재설치 해보시기 바랍니다.

추가적으로, 유사한 에러에 대한 기존 Q&A 게시물을 참고하시면 더 도움이 될 수 있습니다:
- ModuleNotFoundError 해결 방법

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.