머신러닝과 기술적 분석

[python] 작업중인 환경을 공유하는 방법 본문

python

[python] 작업중인 환경을 공유하는 방법

BetterToday 2017. 8. 26. 12:31
728x90

python은 2.7 / 3.x version이 공존하고 있고 third party library 들의 update 도 빈번하기 때문에 co-work 을 할 때 작업환경을 공통으로 설정하는 것이 정신건강이 좋다.

이럴 때 사용하는 것이 python 가상환경이다. (나는 주로 anaconda 에서 제공하는 conda env를 사용한다.) 딥러닝 framework 버전꼬여서 우분투 포맷 10번정도해보면 이렇게 해야한다는 것을 몸으로 깨닫는다.

1. 가상환경을 yml file 로 저장하는 방법

  • 먼저 작업할 환경을 conda environment 로 생성한다.

  • console 에서 사용중인 environment 를 activate 한다.

    • widnows: c:\> activate working-env
    • linux : > source activate working-env
  • activate 된 environment 를 .yml 파일로 생성한다.

    • conda env export > environment.yml

생성된 environment.yml 을 열러보면 아래와 같은 형태로 되어있다.

name: environment
channels:
- defaults
dependencies:
- pip=9.0.1=py35_1
- python=3.5.2=0
- setuptools=27.2.0=py35_1
- vs2015_runtime=14.0.25123=0
- wheel=0.29.0=py35_0
prefix: C:\Anaconda3\envs\working-env
  • 여기서 마지막줄에 있는 prefix 항목은 삭제하고 배포하는 것이 좋다. 다른 컴퓨터에서의 python path 가 다르면 error가 나기 때문이다.
    • prefix 항목이 없다면 해당 컴퓨터의 default path에 있는 python interpreter 를 찾아서 알아서 설치된다.

2. yml file 로 저장된 가상환경을 생성하는 방법

이제는 1번과정에서 생성한 yml file로 다른 컴퓨터에서 가상환경(conda environment)을 생성해서 작업을 하면 된다.

  • 가상환경을 생성
    • conda env create -f environment.yml
  • 가상환경을 activate
    • widnows: c:\> activate working-env
    • linux : > source activate working-env

github 에 있는 python project 중에 사용자를 고려한 project들은 이러한 방식으로 배포하고 있다. 대표적으로 내가 배포한 숫자인식프로젝트가 있다.

728x90
반응형
Comments