설치중인데 venv를 꼭 써야할까요?
119
7 asked
venv로 해서 하니까 이전에 있었던 라이브러리들이 안먹혀서요? 문제는 없나요?
Answer 2
0
안녕하세요 조만준님!
가급적이면 venv 로 가상환경을 만들어주는게 좋습니다.
물론 가상환경을 만들면 파이썬 글로벌 환경의 라이브러리들은 인식이 되지 않습니다. 하지만 바로 그런 점 때문에 가상환경을 씁니다. airflow 를 설치하면 굉장히 많은 라이브러리들을 종속성으로 함께 설치하게 되는데 경험적으로 보면 pandas랑 sqlalchemy 버전간 종속성 문제로 문제가 발생하는 경우가 종종 보입니다.
글로벌 환경을 그대로 쓰게 되면 (만약 글로벌 환경에 pandas가 존재할 때) airflow 및 sqlalchemy를 설치하게 되면 종속성 문제가 발생할 가능성이 있습니다.
따라서 가상환경을 만들어주고 그 안에서 airflow 라이브러리들은 설치하게 되면 검증된 버전을 설치하게 됩니다. 따라서 의존성 충돌이 발생할 가능성은 매우 낮아지죠.
이는 Airflow 만의 특징은 아니고 보통 파이썬 프로젝트를 하나 만들 때마다 가상 환경을 하나씩 분리해서 만들어주는 게 일반적입니다.
답변이 되셨을까요?
0
구성하는 방법에 정답은 없습니다.
조만준님께서 고민하시는 것처럼 가상환경을 함께 쓸지 분리할지는 어느정도 고민이 필요한 부분입니다.
만약 크롤링 모듈이 포함한 etl 자동화 프로젝트라면, 그래서 etl 프로젝트의 서브 모듈로써 크롤링 코드를 작성한다면 하나의 가상환경으로 가도 좋습니다.
그런데 etl 프로젝트용으로 작성된 프로젝트와 CI/CD 환경이 존재하는데 이와 별도의 크롤링 프로젝트를 하나 만든다면 그래서 CI/CD 환경도 분리가 된다면 가상환경도 분리해주는게 좋습니다.
요약하자면
일반적으로는 CI/CD 배포하는 프로젝트 단위로 가상환경을 분리시킵니다.
크롤링 모듈이 etl 프로젝트 서브 모듈로서 존재하면 단일 CI/CD 배포, 단일 가상환경으로 구성
크롤링 모듈이 etl 프로젝트와 별개 성격으로 구성되고 CI/CD 도 별도 구성한다면 가상환경도 별도 구성
이렇게 정리해볼 수 있겠네요.
0
안녕하세요, 인프런 AI 인턴입니다. 조만준님.
venv는 Python의 가상 환경을 생성하여 여러 프로젝트 간에 격리된 패키지 설치를 가능하게 해주는 도구입니다. 이는 서로 다른 프로젝트가 각각의 라이브러리 버전을 필요로 할 때 매우 유용합니다. 예를 들어, 어떤 프로젝트는 pandas의 최신 버전을 필요로 하고, 다른 프로젝트는 이전 버전을 필요로 하는 경우에 유용합니다.
venv를 사용하는 것이 권장되기는 하지만, 사용하는 것이 필수는 아닙니다. 특히, 이전에 설치한 라이브러리를 활용하고 싶으시다면, venv를 사용하지 않고 시스템 전체적으로 설치된 라이브러리를 사용할 수도 있습니다. 단, 이렇게 하면 환경이 복잡해질 수 있고, 라이브러리 충돌이 발생할 수 있다는 점에 유의해야 합니다.
如果你想了解更多关于使用venv和不使用venv的优缺点,你可能会发现以下信息有帮助:
- 不使用venv可能会导致库版本冲突,因为同一环境下的所有项目都共享同一组库和其版本。
- 使用venv可以确保每个项目有一个独立的、与其他项目隔离的环境,这是更建议的方式,因为这可以防止项目间的依赖冲突。
관련하여 유사한 질문 및 답변 링크를 다음과 같이 추천드립니다:
- 파이참에서 외부 파이썬 함수 수행하기 - 이 게시물에서는 실행 환경과 라이브러리 설치에 대한 유용한 정보가 공유되었습니다.
- airflow에 필요 패키지 설치방법 문의 - 필요한 패키지 설치와 관련된 다른 사용자의 경험이 기록되어 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
pykrx 회원제 전환으로 인한 실습 불가
0
103
2
수료증 발급
0
78
3
에러 발생 관련 질문드립니다.
0
77
2
vscode 작업화면에 오류가 발생하지 않습니다.
0
68
2
plugins 폴더 생성
0
73
2
WSL에서 git push 가 안되요 ㅠ
0
107
2
chatGPT&Airflow로 블로그 자동 포스팅하기 는 Deprecated 가 필요합니다.
0
65
2
github에 회원가입이 안되는데 원인이 뭔지 모르겠어요 ㅠ
0
705
2
설치 버전 관련 질문입니다.
0
66
1
우분투 버전 다운받아야하는데 어떤걸로 설치해야할까요?
0
60
1
DAG 만들기 중 airflow 패키지 로드 에러
0
104
2
3.0에서도 수업노트가 성립하는지 확인 부탁드립니다!
0
94
3
task_id 사용법이 뭔가 바뀐 것 같습니다.
0
75
3
email operator 오류 관련
0
63
2
plugins 폴더 관련
0
91
2
bash operator 관련 문의입니다
0
77
3
스케쥴러 - DAG 파싱 부하 줄이는 과정 질문
0
78
2
Dags refresh 주기 관련 질문
0
123
2
wsl 관련 질문입니다.!
0
72
2
macOS에서 docker 설치
0
92
2
템플릿 변수에 대한 오류
0
58
2
custom_image 디렉토리 문의드립니다.
0
51
2
ETL 인터뷰 관련 문의
0
100
2
섹션 9. Connection & Hook - 50강 관련 질문
0
95
2

