'가상환경 만들 때 SSL Error 발생 시 대처 방법'에 해당되는 글 1건

  1. 2019.07.19 [Python] Windows10에서 Anaconda Prompt를 이용해 가상환경 만들기 (Create a new virtual environment for python with anaconda prompt)

이번 포스팅에서는 Windows 환경에서 Anaconda Python 배포판으로 Python을 설치했을 경우에, Anaconda Prompt 를 이용하여 Python x.x 버전의 새로운 가상환경(Virtual Environment)을 만드는 방법을 소개하겠습니다. 

가상환경(Virtual Environment)을 이용하면 Python 버전 간의 의존성을 고려해서 가상의 격리된 환경을 만들어줌으로써 버전이 다름으로 인해 발생할 수 있는 호환이나 충돌 문제를 미연에 방지할 수 있도록 해줍니다. Anaconda Python 배포판에서는 conda command 로 가상환경, Python 패키지 설치를 관리할 수 있습니다. 


Anaconda Navigator에서 UI를 가지고 좀더 쉽게 가상환경을 만들 수도 있기는 한데요, 가끔 보면 Windows OS 노트북 사용하는 분들 중에 Anaconda Navigator 를 실행시켜면 화면으로 뜨는데 5분~10분 정도씩 걸리는 경우도 있더라구요. 그래서 빠르게 바로 실행시킬 수 있는 Anaconda Prompt 를 사용해서 가상환경 만드는 방법을 소개하겠습니다.  

먼저 Windows 실행 버튼을 눌러서 Anaconda Prompt 메뉴를 찾아 실행합니다.  python -V 커맨드로 확인해보니 저는 python 3.5.2 버전을 쓰고 있습니다. Python 2.7 버전으로 새로운 가상환경을 만들어보겠습니다. 

 > python -V



1. Conda 버전 확인 및 Conda Update


conda 를 최신버전으로 업데이트를 해줍니다. 중간에 Proceed ([y]/n)? 질문이 나오면 'y' 를 입력해줍니다. 

conda -V

conda update conda

Proceed ([y]/n)? y



 2. 가상환경 목록 확인 (Check virtual environments list)


 > conda env list

또는 

conda info -e



 3. conda로 가상환경 새로 만들기 (Create a new virtual environment using conda)

> conda create -n [virtual environment name] python=[python version] anaconda

의 형식과 순서대로 입력해줍니다. 저는 새로운 가상환경 이름을 'py_2.7'로 하였고, python 2.7 버전으로 anaconda 배포판을 이용해서 가상환경을 만들어보겠습니다. 

 conda create  -n  py_2.7  python=2.7  anaconda

이렇게 하면 아래처럼 Python 2.7 버전과 호환이 검증된 다른 Python libraries 들이 버전을 맞추어서 자동으로 수십개가 설치가 됩니다. 


중간에 Proceed ([y]/n)? 라고 묻거든 'y' 라고 답해주세요. 


혹시 SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed 라는 SSLError 가 발생하면 아래의 "conda config --set ssl_verify false"라는 command를 실행하고 난 후에, 위의 "conda create -n py_2.7 python=2.7 anaconda" 커맨드를 다시 실행시켜 보세요. 

 > conda config --set ssl_verify false

혹은 Anaconda Navigator의 Preference에서 'enable SSL verification' 옵션의 체크박스를 해제해주고 "conda create -n py_2.7 python=2.7 anaconda"를 다시 실행해보기 바랍니다. 


"py_2.7" 이라는 이름의 가상환경이 잘 만들어졌는지 확인해볼까요? (이번에는 "conda env list" 대신에 "conda info -e"를 사용해서 가상환경 목록 확인)

 


 4. 가상환경 활성화 하기 (Activate Virtual Environment)


"activate [virtual environment name]" 형식으로 커맨드를 입력해주면 해당 이름/ Python 버전의 가상환경이 활성화되어서 이용 가능해집니다. 방금 새로 만든 python 2.7 버전으로 설치한 "py_2.7" 이름의 가상환경을 활성화해보겠습니다. 
(참고로, Mac OS에서는 > source activate [virtual_env_name] 으로서, Windows랑 조금 다릅니다.)

 > activate py_2.7


아래 화면 캡쳐해놓은 것처럼 activate py_2.7 을 하고 나면 "(py_2.7) C:\Users\admin>" 과 같이 커서 화면이 바뀝니다. 



 5. IDE (Jupyter Notebook, Spyder, IPython) 실행하기

conda prompt 창에서 커맨드 명령문으로 "py_2.7" 이라는 이름의 가상환경에서 python 2.7 버전을 사용할 수 있게 Jupyter Notebook, Spyder, IPython 등의 IDE 를 실행시킬 수 있습니다. 

5-1. Jupyter Notebook 실행

 (py_2.7) > jupyter notebook 

아래처럼 웹브라우저가 뜨면서 Jupyter Notebook이 실행되면 우측 상단의 'New' 메뉴에서 'Python 2'를 선택해서 새로운 Notebook 화면을 생성합니다.

아래처럼 새로운 Notebook 화면이 뜨면 이름 설정해주고 사용하면 되겠습니다. 탐색적 데이터 분석이나 교육용으로 사용하기에는 Jupyter Notebook이 제격이지요. 

Jupyter Notebook 다 사용하였으면 저장하고, 노트북 홈 화면에서 작업한 파일 shutdown 하구요, conda prompt 창에서 'Ctrl + C' 해주면 jupyter notebook kernel 종료(kernel shutdown)하고 빠져나올 수 있습니다. 


5-2. Spyer 실행

 (py_2.7) > spyder

Python으로 Project별로 Production 하기에는 Spyder나 Pycharm 이 작업하기에 더 편한거 같습니다. 


5-3. IPython 실행

 (py_2.7) > IPython

그냥 가볍고, 깔끔하고, interactive 하게 코딩하고 싶으면 IPython 이용하면 되겠습니다. 



 6. 가상환경 비활성화/ 종료하기 (Deactivate a Virtual Environment)

가상환경을 종료하려면 > deactivate 해줍니다. 

(참고로, MacOS 사용자라면 > conda deactivate 로서, Windows와는 조금 다릅니다)

 (py_2.7) > deactivate

아래 화면 캡쳐한 것처럼 가상환경을 deactivate 해주면 "C:\Users\admin>" 으로 커서가 빠져나옵니다. 



 7. 가상환경 제거 하기 (Delete a Virtual Environment)

특정 Python 버전을 쓰는 프로젝트가 끝나서 더이상 쓸모가 없거나, 오래된 버전이라서 사용하지 않게 된 가상환경을 삭제하려면 > conda env remove -n [virtual environment name]  이라는 커맨드 명령어를 실행시켜줍니다. 

 > conda env remove -n py_2.7

그러면 자동으로 전체 가상환경 내 library 들을 지워주며, 다른 가상환경과는 격리되어 있기 때문에 아무런 영향없이 지워줍니다. 좋지요?! :-)


자동으로 버전 맞춰서 설치되었던 Python libraries 들을 지울건데 정말로 지워도 되냐고 확인 (Proceed ([y]/n)?)하려고 물어보는데요, y 라고 답해주기 바랍니다. 


> conda env list  로 가상환경 목록을 확인해보니 'py_2.7' 이라는 이름의 python 2.7 버전의 가상환경이 안보이네요. 잘 제거된거 맞네요. 


많은 도움이 되었기를 바랍니다. 

이번 포스팅이 도움이 되었다면 아래의 '공감~'를 꾹 눌러주세요. :-)


728x90
반응형
Posted by Rfriend
,