반응형

[python] 버전에 대한 논의와 라이브러리 설치

버전에 대한 (의미없는) 논쟁

 필자가 처음 파이썬을 접하게 된것은 기록시점으로부터 약 4년전인 2014년 말 혹은 2015년 초 쯤 이었다. 당시 필자는 순수 물리학으로 졸업해서 대학원을 컴퓨터 공학으로 전과 지원을 해서 공부를 했기 때문에 이제 막 C/C++와 자료구조를 한참 익히고 있을 때였다.


 그러던 중 멀티미디어 강의를 하고 있던 선배의 부탁으로 실습준비를 도와주면서 파이썬을 처음으로 접하게 되었다. 당시 python3.1이 나오던 시기였기 때문에 대부분 자료는 python2.7을 기준으로 하는 자료가 많았다. 게다가 대부분읜 자료는 윈도우보다는 리눅스나 OS X 기반환경에 대한 설명이 주를 이루었었다. 이는 당시 윈도우 환경에서는 오류가 나는 일이 많았던 것으로 기억이 난다.


 때문에 당시에 규모 있는 커뮤니티에서 2.7 버전과 3.x 버전 중 어느 버전을 사용해야 하느냐는 질문이 나오면 2.x 버전을 사용하는 사람을 게으름뱅이(?)로 취급하는 사람들도 꽤 있었기 때문에 논쟁이 격해지기도 했는데, 의미가 없는 짓이다. 일단 당시 수치계산에 중요한 numpy 라는 라이브러리가 아직 3.x를 완벽하게 지원되지 않았기 때문에 이는 자신이 하려는 일에 지원이 되는지 여부를 확인하고 선택해야 한다.


 물론 지금은 시간이 많이 지나서 기존 2.7에서 지원되는 라이브러리가 3.x에서도 많이 되는것 같다. 특히 pip 같은 라이브러리 관리 툴의 경우 윈도우 환경에서 사용하기 위해서는 별도로 설치 방법을 찾아서 설치를 해주었어야 했으나 지금은 Python 설치시 같이 설치가 된다.



라이브러리 설치

 라이브러리 설치는 이미 Python이 설치되어 있다는 전제하에서 진행을 한다.

 라이브러리를 설치하는 방법은 직접 파일을 다운로드 받아서 설치하는 방법이 있지만, 오프라인 환경에서 작업해야 하는 것이 아닌 이상 pip를 통해서 설치하면 된다. 만약 python2.7 과 python3.x를 같이 혼용해서 사용한다면, -m 옵션을 사용해서 명령어를 실행하면 된다.


예시로 numpy를 설치한다.


# 한가지 버전만 사용하는 경우
pip install numpy

# 두가지 버전을 같이 사용하는 경우 만약 3.x의 경우
python3 -m pip install numpy


 위의 명령어를 powershell 이나 cmd 창에서 실행하면 된다. MS에서는 최근 powershell을 밀고 있으니 powershell을 사용하는 것도 권장한다.

 만약 opencv를 설치할 경우에도 pip를 통해서 설치가 가능하다. 과거에는 python 패키지 관리격인 anaconda를 통해서 설치가 가능했지만, 필자가 이 글을 적는 시점에 확인한 결과 opencv도 설치가 가능했다.


# OpenCV 를 설치하는 경우
# 여기서 matplotlib는 그래프 같은 새창을 띄울때 사용되는 라이브러리이다
python3 -m pip install matplotlib opencv-python

# python3 인터프리터를 호출한후 라이브러리 호출을 확인한다
>>>import cv2
>>>print(cv2.__version__)


대부분 설치 확인을 이미지를 띄워보지만, 버전만 확인해봐도 호출이 제대로 되는지 확인이 된다.


 위의 방식으로 설치할 경우 버전이 최신으로 설치가 되니 버전을 선택을 하고 싶다면, 버전도 추가로 입력을 해줘야 한다. 이처럼 과거보다 python 프로그램의 진입장벽이 많이 낮아 진것이 체감된다. 특히 OpenCV의 경우 C++로 개발하는 것이 아니라면, 이제는 소스를 받아서 CMake로 메타 빌드까지 안해도 되는 시대가 되었다.


참조자료

python opencv 설치 방법



반응형

'Python > Python3' 카테고리의 다른 글

[python3]타입검사(Type Check)  (0) 2019.04.23
[Python3]Str(문자열)의 편리한 기능들  (0) 2019.04.20
[Python3]List의 편리한 기능들  (0) 2019.04.19
[python]CSV 데이터 포멧 입출력  (0) 2018.10.22
[python]기본 Shell 활용  (0) 2018.10.20

+ Recent posts