기존에 이미 만들어둔 conda 가상환경을 분리해서 사용하거나, 또는 다른 Linux 계정의 사용자에게도 동일한 가상 환경 설정을 제공하고 싶을 때가 있습니다. 그전에 작업하기 위해서 conda 가상환경에 상당히 많은 패키지들이 설치하였을텐데, 아래 방법을 이용하면 손쉽게 conda 가상 환경 카피본을 따 여기저기서 자유롭게 활용할 수 있습니다.
1. 복제하고자 하는 conda 가상환경 활성화
conda 가상환경이 설치된 계정('guest')으로 접속하여 복사하고자 하는 가상환경('venv')을 활성화시킵니다.
conda env list
conda activate [복사하고자 하는 가상환경 이름]
2. 가상환경 Export
가상환경의 configuration을 'yaml' 이라는 형태의 파일로 저장합니다.
conda env export > cenv.yaml
3. 복사본의 환경명(env name) 변경
앞서 얻은 cenv.yaml 파일을 열어보면 최상단에 가상환경 이름(name)과, 그 아래 기존에 사용하던 패키지 정보들이 쭉 나열되어 있습니다. 여기서 'name' 부분을 적절히 새로 지어줍니다.
vi cenv.yaml
4-1. 가상환경 생성 (같은 Linux 계정 내에서)
편집한 configuration 파일을 기반으로 가상환경을 새로 생성합니다.
conda env create -f cenv.yaml
# 잘 생성되었는지 확인
conda env list
4-2 가상환경 생성 (다른 Linux 계정에서)
방식은 4-1과 거의 유사하며, cenv.yaml의 권한 문제만 다음과 같이 해결하면 됩니다. 타 계정('yankos')의 홈 디렉토리로 config 파일을 복사하고 chown 명령어를 통해 소유주를 해당 사용자로 변경합니다.
# sudo cp cenv.yaml [저장될 디렉토리: ex) 타 계정의 홈 디렉토리]
sudo cp cenv.yaml /home/yankos/
# sudo chown -R [사용자계정]:[사용자계정] [cenv.yaml이 저장된 디렉토리]
sudo chown -R yankos:yankos /home/yankos/cenv.yaml
터미널에서 계정을 전환한 뒤, 4-1에서 보았던 동일한 명령어로 가상환경을 생성합니다.
conda env create -f cenv.yaml
# 잘 생성되었는지 확인
conda env list
반응형