vs code를 사용하며 conda 와 python3 를 같이 사용하는 개발 환경이 나중에 협업이나 git관리에 있어 혼동이 될 것이라는 피드백을 받고 conda 를 밀기로 결정.
- pip와의 혼용으로 conda 환경 내에서는 python 패키지를 설치할 때는 가능한 conda install 사용하고, conda 저장소에 없는 패키지는 pip install을 통해 설치. 그래서
- macOS 에서는 기본 쉘로 zsh를 사용, conda 초기화 스크립트가 .zshrc 파일에 자동으로 추가.
pip 이란 파이썬 패키지와 모듈을 설치하기 관리하는 패키지 매니저(Package Management)이다.
pip 은 python2 버전의 패키지 매니저
pip3는 python3 버전의 패키지 매니저
# 버전 확인 가능
python --version
# 패키지가 어디에 설치되어 되어있는지 확인
ls -l 'which pip'
ls -l 'which pip3'
- python3를 설치 했더라도 python 명령어를 사용했을 때 python3이 자동으로 사용되는 경우도 있고 아닌 경우도 있다. MacOS 의 경우 기본적으로 python2 가 설치되어 있어 python3 를 설치 했더라도 'python' 명령어는 python2가 사용되는 경우가 있을 수도 있다. 공식 문서 처럼 'python3...' 사용하는 것이 좋다.
- 만약 가상환경 내에서만 패키지를 설치하고 싶다면, 그냥 가상환경 내에서 'pip install...'
- 혹시 가상환경 내에서 'pip3 install...'을 진행하게 된다면, 패키지는 가상환경이 아닌 로컬에 설치
- pip은 python만 한정된 패키지 관리자이고, conda는 python 뿐만 아니라 c,java 등에도 포함된 패키지
- pip3 는 python3.x용 패키지 인스톨러. python 패키지와 라이브러리를 설치하고 관리
- python3 명령어는 python3.x 버전의 인터프리터를 실행하는 데 사용
-pip3를 통해 설치된 패키지는 python3에서 import하여 사용 가능. python3를 사용하여 스크립트나 모듈을 실행할 때, pip3를 통해 설치된 라이브러리가 필요한 경우가 많음
https://dailyheumsi.tistory.com/33
https://databonanza.tistory.com/17
파이썬 가상환경(Virtual Environment)이란?
- 독립적인 프로젝트를 위한 개별적인 공간. 여러 프로젝트를 진행할 때 각 프로젝트의 '의존성(dependencies)' 과 '라이브러리(libraries)'를 구분하여 관리
- 서로 다른 버전의 파이썬 라이브러리 사용
가상환경 이점
- 프로젝트 분리 : 다양한 프로젝트에서 서로 다른 라이브러리 버전을 사용할 수 있어, 한 프로젝트에서의 변경이 다른 프로젝트에 영향을 미치지 않는다.
- 의존성 관리 : 프로젝트별로 필요한 라이브러리와 버전을 명확히 관리할 수 있어, 코드의 호환성 및 재현성을 높일 수 있다.
- 개발 환경 일관성 : 다른 개발자와 협업 시, 같은 환경에서 작업함으로써 발생할 수 있는 문제를 최소화한다.
Conda 가상환경
추후 프로젝트 및 git관리를 위해 conda를 밀어버렸다.
Conda란?
- 파이썬 및 기타 프로그래밍 언어를 위한 오픈소스 패키지 관리 시스템이자 환경 관리 시스템. 데이터 사이언스, 머신러닝에 유용하며 복잡한 라이브러리를 쉽게 설치하고 관리
Conda 가상환경 생성 및 활성화
# 가상환경 생성 (env_name은 가상환경 이름)
conda create --name env_name python=3.8
# 가상환경 활성화
conda activate env_name
Conda 명령어
- 가상환경 목록 : 가상환경의 전체 목록을 확인. 현재 설치된 모든 conda 가상환경의 목록 표시
conda env list
- 특정 가상환경 제거 : 특정 가상환경 제거
conda env remove --name env_name
- 패키지 설치 : conda를 사용하여 특정 패키지를 설치. ex) conda install numpy
conda install package_name
Venv(virtual Environment) 가상환경
Venv란?
- 파이썬을 위한 가상 환경 생성 도구이다. 파이썬 3.3 버전부터 표준 라이브러리에 포함 및 개별 프로젝트에 독립된 파이썬 환경을 제공. 이를 통해 서로 다른 프로젝트에서 다른 버전의 라이브러리를 사용할 수 있으며 시스템의 파이썬 환경에 영향을 주지 않음
Venv 가상환경의 이점
Venv 를 사용하면 파이썬 프로젝트의 의존성 관리가 간편해짐, 다양한 환경에서의 프로젝트 호환성을 보장. 이는 특히 개인 프로젝트나 소규모 팀 프로젝트에 매우 적합
1. 경량성과 편리성 : 파이썬의 기본 모듈로 제공되므로 추가 설치가 필요 없음
2. 프로젝트별 독립성 : 각 프로젝트에 필요한 패키지와 의존성을 독립적으로 관리
3. 시스템 파이썬 환경 보호 : 시스템의 기본 파이썬 환경에 영향을 주지 않고, 프로젝트별로 다른 버전의 라이브러리 사용 가능
4. 패키지 버전 관리 : pip freeze > requirements.txt 명령으로 현재 환경의 패키지 목록을 저장하고, 다른 환경에서 pip install -r requirements.txt 명령으로 동일한 환경 구축
Venv 설치 및 설정
Venv는 파이썬 3.3 이상 버전에 기본적으로 포함되어 있으므로 별도의 설치 과정이 필요 x
# 가상환경 생성 (env_name은 가상환경 이름)
python3 -m venv env_name
# 가상환경 활성화 (맥/리눅스)
source env_name/bin/activate
# 가상환경 활성화 (윈도우)
env_name\Scripts\activate
Venv 명령어
- 가상환경 비활성화 : 활성화된 가상환경을 비활성화
deactivate
- 패키지 설치 : 가상환경 내에서 특정 패키지를 설치. ex) pip install requests
pip3 install package_name
- 설치된 패키지 목록 확인
pip3 list
패키지 설치
- 패키지 리스트 저장
pip3 freeze > requirements.txt
- 패키지 일괄 설치 : 패키지 리스트에 있는 모든 패키지를 일괄적으로 설치
pip3 install -r requirements.txt
Conda와 Venv 비교
Conda와 Venv는 가장 인기 있는 두 가상환경 관리 도구.
기능적 차이
- 설치 및 관리 :
- Conda : 데이터 사이언스, 머신러닝 프로젝트에 최적화된 다양한 패키지 함께 제공. 복잡한 의존성 관리와 다양한 패키지 설치를 쉽게 처리
- Venv : 파이썬 3.3 이상 버전에 포함된 경량화된 도구로, 필요한 기본적인 가상환경기능을 제공
- 환경 구성 :
- Conda : 파이썬과 다양한 프로그래밍 언어 지원, 특히 Anaconda 배포판에 포함된 많은 데싸 계산 관련 패키지들과 호환성이 뛰어남
- Venv : 오직 파이썬 환경에 초점. 순수 파이썬 프로젝트에 적합
- 추천 :
- Conda : 복잡한 데이터 사이언스 프로젝트나 다양한 언어를 사용하는 프로젝트 추천. Conda를 통해 라이브러리 간의 복잡한 의존성을 관리하고, 특히 과학 계산이나 데이터 분석에 필요한 패키지를 쉽게 설치
- Venv : 기본적 파이썬 개발 환경이 필요한 경우에 적합. 가벼운 프로젝트나 파이썬 학습, 작은 규모의 웹 앱 개발