평소에 python 가상환경을 사용할 때 단순히 처음 접했다는 이유로 anaconda를 계속해서 사용해왔는데 회사 개발 서버에 anaconda를 올리고 가상환경을 유지하는데 너무 많은 용량을 사용한다는 얘길 듣고 가상환경을 venv로 변경
이와 같은 상황에서 가상환경에 구성 방안에 간단히 정리하고자 작성한다
python 가상환경 중에 여러가지 방법들이 있겠지만 anaconda, venv 2가지를 위주로 참고한 자료, 진행 흐름에 대해 간략히 기록 예정
linux의 가상환경을 만들고 기존의 window(로컬)에서 작업했던 패키지만 그대로 전달해줄 수 있다면 가상환경 세팅이 가능할 것이라 생각했다
pip list
: 패키지 리스트 확인
pip freeze > requirements.txt
: requirements.txt 파일에 가상환경 패키지 리스트 저장
pip install -r requirements.txt
: requirements.txt 내에 모든 패키지 일괄 설치
하지만 위와 같은 방법으로 가상환경 linux => window 실패
conda list --export > packagelist.txt
: conda list 저장(export)
conda install --file packagelist.txt
: conda list 불러오기(새로운 가상환경에 install)
두번째 방법도 실패
conda env export -n 가상환경명 --no-build > envrionment.yml
: OS 종속성 제거를 위해 --no-build
옵션을 사용해 가상환경 추출
linux 내에 가상환경을 만들고
conda env update -n 가상환경명 -f environment.yml
: 추출한 가상환경 업데이트
세번째 방법도 실패, 패키지 외에 다른 문제가 있을 수도 있다는 생각이 들었다
위 작업을 진행하며 이래서 도커나 컨테이너 같은 작업을 하는건가? 라는 생각을 했다
해당 작업을 반복하며 anaconda를 몇번을 지우고 실행했을 때 InvalidArchiveError
err를 확인
conda clean --all
링크 참고
anaconda 공식홈페이지에서 linux 환경 installer wget 키워드 이용해 다운
bash 파일명
: 다운받은 anaconda install 파일 실행
설치 과정에서 anaconda path를 잡아줘야 conda 명령어 실행 가능
source ~/.bashrc
명령어를 이용해 최신화 필요conda create --name=가상환경명 python=버전
: 가상환경 생성
conda install lib
, pip install lib
: 모두 모듈 설치 명령어
conda
명령어는 모든 언어에 대한 전역 환경이라 생각하면 되고 pip
는 python 가상환경에만 적용되는 거라 생각하면 된다conda activate 가상환경명
: 가상환경 실행
conda deactivate
: 가상환경 종료
python -m venv 가상환경명
: 가상환경 생성
가상환경명/Scripts/activate
: 가상환경 내 scripts 폴더에서 activate로 가상환경을 활성화 시킬 수 있다
pip install lib
: 모듈 설치
lib
위치에 사용할 모듈들을 설치해주면 된다deactivate
: 가상환경 비활성화
anaconda에 비해 굉장히 적은 용량으로 가상환경을 유지할 수 있다