* 효율적인 파이썬 윈도우 개발 환경구성 방법 (Python window dev environment)
※ 요약
* 윈도우(window)에서 파이썬을 설치해서 개발을 하면 만나게 될 수 있는 문제점 - 해당 모듈을 찾을 수 없습니다 - 해당 모듈에 OO한 함수, 기능 등이 없습니다. - 오류 문구 내용 샘플(Sample) : modulenotfounderror: no module named 'six.moves'; 'six' is not a package - 해당 모듈을 삭제 및 재 설치해도 반복되는 상황 - 파이썬을 삭제 및 재 설치 했음에도 반복되는 상황 - pip를 업그레이드 했음에도 불구하고 모듈(라이브러리)이 정상적으로 동작하지 않는 상황 * 문제 해결 방법 : 가상 환경을 구성! |
윈도우에서 개발환경을 구성 할 때 문제없이 잘 동작한다면 사실 상관 없습니다만,
위 요약한 내용처럼 라이브러리 의존성 문제 등등 무언가 잘 동작하지 않는 경우에는 난감합니다.
머신러닝과 관련된 sklearn, tensorlfow, pandas 또는 matplotlib 등등 요 4형제에서 문제가 나타나면 사실상 개발을 진행하는 것은 어렵습니다.
아나콘다(anaconda)는 이러한 문제를 쉽게 해결 해 주기 위한 사전에 다양한 기능을 패키징한 파이썬 배포판이라 볼 수 있습니다.
아나콘다라는 응용 프로그램을 설치하면 필요한 라이브러리, 기능 및 가상환경을 쉽게 구현 할 수 있습니다.
먼저 아래 사이트에서 설치파일을 받습니다.
www.anaconda.com/products/individual
파일을 실행하여 설치하여 줍니다. 설치방법은 어렵지 않습니다.
위 파일을 받아 설치하게 되면 아래 처럼 시작매뉴에 추가된 것을 볼 수 있습니다.
Prompt나 Powershell Prompt를 실행하여도 되지만 좀더 멋진 gui 툴인 Anaconda Navigator를 실행하여 줍니다.
실행하는데 시간이 조금 걸립니다.
좌측 매뉴에서 Enviroments를 선택하여 줍니다.
그러면 아래 사진처럼 가상환경이 무엇무엇이 있는지 나오게 됩니다.
가상환경이라는 것은 파이썬을 개발 및 운용 할 때의 영역을 분리해 주는 개념 입니다.
이름이 A라는 가상 환경을 만들고 A에서는 파이썬 2.X 버전을 설치해서 특정 기능을 만들었다고 가정해 봅니다.
그리고 B라는 가상 환경에서는 파이썬 3.X버전을 설치해서 특정기능을 만들었다고 가정하여 봅니다.
A와 B라는 가상환경이 서로 다르므로 아무런 영향을 주지 않고 독자적인 환경을 만들수가 있습니다.
A라는 이름을 가진 가상환경에서는 파이썬 3버전 때의 특정 기능이 동작하지 않을 것 이며,
B라는 이름을 가진 가상환경에서는 파이썬 2버전 때의 특정 기능이 동작하지 않을 것 입니다.
base라고 하는 것은 기본 가상 환경을 의미 합니다.
기본 가상환경은 삭제할 수 없습니다.
그리고 아래 보이는 가상환경은 이미 만들어본 python_machine_learning이라고 만든 환경 입니다.
가상환경을 만들려면 아래 보이는 Create 버튼을 눌러서 만들 수 있습니다.
가상 환경이 구성이 되면 화살표 버튼을 눌러서 콘솔(Open Terminal)을 실행하여 봅니다.
해당 콘솔에서 python 명령어와 pip 명령어를 통해서 파이썬과 관련된 내용을 실행 할 수 있습니다!
또한 필요한 모듈(라이브러리)은 pip 말고 gui 환경에서 쉽게 설치가 가능 합니다.
조그마한 검색창 같은 내용이 바로 모듈을 찾는 gui 입니다.
여기서 중요한 점은!!
작업중인 파일은 반드시 가상 환경이 구성해준 디렉토리에 위치하여야 합니다.
만약 D:/test 라는 디렉토리에서 가상환경을 구성했는데, 실행할 파일이 C:/test라면 해당 파일은 실행되지 않습니다!
가상환경 디렉토리 내부의 하위 디렉토리는 상관 없으나, 부모나 이웃관계의 디렉토리에서는 해당되지 않습니다.
그리고 기본 디렉토리 위치를 바꾸고 싶다면 아래 명령어를 통해 가상환경을 처음부터 만들어주면 디렉토리를 바꿀 수 있습니다.
conda create --prefix 원하는디렉토리위치(예: D:/test) python=3.8
가상환경을 통해서 파이썬 개발환경을 구성하면 모듈(라이브러리)과 관련된 문제는 다소 쉽게 해결을 할 수 있습니다.
기타 궁금한점이나 틀린점은 언제든 연락주세요. :)
'기타' 카테고리의 다른 글
웹에서 네이버, 카카오(다음) 로그인 api 연동 개념 정리(소셜 로그인) (6) | 2021.05.25 |
---|---|
개발 블로그 드래그 방지, 복사 방지 (2) | 2021.04.15 |
기초 위주 머신러닝 정리 - 0(Machine learning) (0) | 2021.01.10 |
크롬 화면 캡쳐, Chrome 화면 캡쳐(chrome capture, screen shot) (0) | 2020.12.01 |
크롬, 파이어폭스 네트워크 속도 관리(브라우저 속도, browser performance) (0) | 2020.11.19 |
댓글