강의

멘토링

로드맵

Inflearn brand logo image

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

youngjin kim님의 프로필 이미지
youngjin kim

작성한 질문수

Airflow 마스터 클래스

vscode에서 소스 빨갛게 밑줄 가서 에러 처럼 보여요

해결된 질문

작성

·

85

0

에어플로워 라이브러리 로컬컴에 설치했고

코드에서 import 하였습니다.

실제 dag도 airflow에서 정상 동작하는데요.

vscode에서만 소스에 문제 있는것처럼 빨갛게 밑줄이 갑니다.

불편하지는 않은데 실제 에러랑 구분이 안되서 해결하고 싶어서요.

뭐가 문제인지 예상되는게 있으실까요?

 

 

답변 2

0

김현진님의 프로필 이미지
김현진
지식공유자

안녕하세요 김영진님!

실제 수행되는 dag 코드는 스케줄러 컨테이너가 검사해서 이상없으면 웹에서 보이게 됩니다. (3.0부터는 dag_processor 컨테이너가 별도로 수행합니다)
따라서 스케줄러 컨테이너가 잘 수행했다는 뜻은 라이브러리 문법 처리하는데 이상이 없다는 뜻이지요.

저런 문제가 발생하는 이유는 영진님께서 로컬 컴퓨터에 airflow 라이브러리 (pip install airflow...) 설치할 때 인스톨되는 라이브러리와 스케줄러 컨테이너가 가지고 있는 라이브러리 목록이 조금 다르기 때문입니다.

간단한 예로 로컬에서 pip install "apache-airflow[celery]==3.0.1".. 방식으로 설치했을 때 pandas 라이브러리는 설치되지 않습니다. 반면에 스케줄러 컨테이너는 pandas 라이브러리를 갖고 있어서 pandas 라이브러리를 사용하는 dag 코드를 작성해도 문제없이 파싱합니다. 반면에 내 로컬에서는 pandas 라이브러리를 명시적으로 설치하지 않으면 빨간줄로 보이게 되는 것이죠.

 

그래서 내 로컬에서 빨간줄로 뜨는 라이브러리는 내 로컬에 별도로 설치해주면 되긴합니다. 혹시 어떤 라이브러리가 빨간줄로 보이나요?

youngjin kim님의 프로필 이미지
youngjin kim
질문자

안녕하세요.

빨갛게 되는건 vscode에서 airflow 모듈을 인식못해서 vscode에서 python확장기능을 재설치하여서 해결하였고 dag작성시 . 찍었을때 함수나 클래스가 안보여서(자동완성) 이상하다고 생각했는데 로컬에 airflow 라이브러리 설치시 3버전대로 설치해서 버전 차이였던거 같습니다. pip install 할때 airflow 2버전대로 하니 문제없이 되는것 같습니다.

답변감사드리며 강의내용이 너무 좋아서 재밌게 잘보고 있습니다.

0

안녕하세요, 인프런 AI 인턴입니다. youngjin kim님.

발생하신 문제는 Visual Studio Code(VSCode)의 코드 분석기가 Python 환경을 제대로 인식하지 못해서 생기는 경우가 많습니다. VSCode에서 에러처럼 보이는 빨간 밑줄은 실제로 코드 실행에 영향을 미치지 않는 경우가 많지만, 시각적으로 혼동을 줄 수 있으니 환경을 설정하여 문제를 해결할 수 있습니다.

  1. Python 환경 설정 확인: VSCode에서는 Python 패키지나 모듈을 인식하지 못하는 경우가 자주 발생할 수 있습니다. 이 문제를 해결하기 위해 사용하는 Python 인터프리터가 올바르게 설정되어 있는지 확인해 보세요. VSCode 하단의 상태 바에서 Python 버전 정보를 클릭하여 Python 가상 환경을 제대로 선택했는지 확인할 수 있습니다.

  2. Python Extension 설치 여부:VSCode의 Python 확장이 제대로 설치되어 있는지 확인하세요. 이 확장은 Python 코드를 더 잘 인식하고 linting(코드 검사) 기능을 제공하므로 꼭 설치되어 있어야 합니다.

  3. 라이브러리 설치: VSCode 터미널에서 pip list 명령어로 필요한 라이브러리들이 실제로 설치되어 있는지 확인해 보세요. 설치되어 있지 않다면, pip install 라이브러리명으로 설치할 수도 있습니다.

  4. Pylint 설정 수정: 경우에 따라, Pylint가 특정 라이브러리를 인식하지 못해 문제를 일으킬 수 있습니다. 이럴 때는 .vscode/settings.json 파일에 "python.linting.pylintArgs": ["--disable=E0401"]를 추가하여 Pylint의 특정 검사 항목을 비활성화할 수 있습니다.

관련된 유사한 질문들이 있어 도움이 될 수 있는 링크를 공유드립니다:

이 정보를 통해 문제가 해결되기를 바라며, 추가적으로 궁금한 사항이 있으시면 언제든지 질문해 주세요.

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

youngjin kim님의 프로필 이미지
youngjin kim

작성한 질문수

질문하기