본문 바로가기
Programming/Python

[Python] Conda 가상환경을 다른 컴퓨터로 옮기기 (ft. 윈도우 버전)

by a voyager 2022. 5. 4.
728x90
반응형

 

파이썬은 일반적으로 가상환경에 설치하고 실행한다. 이렇게 하는 이유는 파이썬 프로그램의 버전과 다른 여러 API의 버전 관리를 위해서이다. 가상환경을 이용하면 버전이 다른 프로그램을 하나의 컴퓨터에 설치하고 필요에 맞게 환경을 바꿔서 작업할 수 있다. 이것이 파이썬 가상환경의 가장 큰 장점이다. 

 

주로 Conda를 이용해 가상환경을 구축하게 된다. Conda는 패키지 관리가 편할 뿐만 아니라 각종 에디터도 제공하기 때문에 편리한 프로그램이다. 

 

이렇게 Conda 환경에서 작업을 하다, 다른 컴퓨터로 옮겨서 작업을 해야 할 일이 생기기도 한다. 이럴 땐, 원래 가상환경에 있던 모든 프로그램을 다시 설치해야 하기 때문에 여간 귀찮은 일이 아닐 수 없다. 

 

이럴 때 원래의 가상환경을 그대로 옮기면 일이 훨씬 줄어들 것이다. 새로운 컴퓨터에서 그대로 작업을 할 수 있기 때문이다.  

 

이 포스팅에서는 Conda-pack이라는 라이브러리를 이용해서 원래 가상환경을 포장에서 다른 컴퓨터 혹은 다른 가상환경으로 옮기는 방법을 설명한다. 

 

참고로 이 방법은 windows에서 windows로만 적용할 수 있다는 것을 기억해두길 바란다. 즉, 맥북에서 윈도우 컴퓨터로 혹은 그 반대로는 적용할 수 없다. 

 

편의상 다음과 같이 용어를 정의해두자. 

 

  • Source : 원래 작업하던 가상환경 
  • Target : 옮길 새로운 가상환경

 

1. (Source) 우선 base 환경에 conda-pack를 설치한다. 

conda install -c conda-forge conda-pack

위와 같이 진행되고 설치가 끝난다. 

 

 

2. (Source) 포장하여 옮길 가상환경을 하나 만들어보자 
(주의할 점은 Python 3.7 버전을 설치해야 한다)

conda create -n env-to-pack python=3.7

env-to-pack이라는 이름으로 만들었다. 

 

conda env list 

conda activate env-to-pack

conda env list로 가상환경이 잘 만들어졌는지 확인하고 activate로 환경을 바꿔준다. 다음과 같이 확인할 수 있다. 

 

 

3. (Source) 필요한 라이브러리를 설치한다. 

conda install <whatever>

numpy, pandas나 데이터 시각화를 위한 matplotlib등 필요한 라이브러리를 설치해준다. 

 

 

4. (Source) 다시 base 가상환경으로 돌아와 env-to-pack환경을 포장한다. 

 

모든 설치가 끝났으면 다음과 같이 base로 돌아와 방금 만들고 라이브러리들을 설치했던 env-to-pack 환경을 packed-env.tar.gz 파일명으로 packing 및 압축한다. 

conda activate base

conda pack -n env-to-pack -o packed-env.tar.gz

packing이 시작된다

 

5. (Source > Target) packed-env.tar.gz 을 새로운 target 환경으로 복사하고, target 환경으로 작업위치를 바꾼다. 

 

6. (Target) 다음으로 압축파일을 푼다.  

*Note: 윈도우에는 7-zip을 이용해 푼다. 이때 두번의 압축해제 과정을 거치게 될 것이다. 아래의 그림은 두번째 단계의 과정을 보여준다. 이 과정이 시간이 좀 걸린다. 

 

 

7. (Target) 압축을 푼 폴더로 간다.

 

여기에서는 unpacked-environment라는 폴더에 압축을 풀었다. 

 

여기에서부터는 관리자 모드의 cmd창을 써야한다. anaconda 터미널이나 powershell을 쓰면 작동하지 않는다. 

 

다음과 같이 실행한다. 

cd unpacked-environment

.\Scripts\activate.bat
! 성공적으로 옮겨졌다면, (unpacked-environment)로 환경이 바뀔것이다. 

.\Scripts\conda-unpack.exe
! 이 실행은 에러나도 상관없다

 

8. (Target) (unpacked-environment) 환경에서 python을 실행해보자

 

이 target 환경에서는 어떤 패키지도 설치하지 않았기 때문에 python은 source 환경에서 복사된 것이다. 

 

(unpacked-env-name) C:\Some\Path\Where\Your\Environment\Is> python

예상대로 python버전은 3.7이고 numpy와 pandas가 성공적으로 import 된 것을 볼 수 있다. 

 

 

728x90
반응형

댓글