달력

52024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

Python, Virtualenv, OpenCV, PyCharm을 설치하고 사용하는 것이, 이게 이렇게 길게 설명해야 할 것인지 몰랐다.

이제 마지막이다. 파이참 설치 후 새로운 virtualenv 환경을 만들어서 파이참에 연결해보자

 

파이참을 다운로드해서 설치한다. ( Download Site )

 

항상 그렇듯이 'Next' 버튼을 눌러주어 설치 마치면 된다. 꼭 'Community For pure Python development Free, open-source' 버전을 다운받아야 한다.

 

파이참 설치가 끝났으면 새로운 가상환경을 만들어보자

lectures_env라는 이름으로 새로운 가상환경을 만들었다.

 

만들어진 lectures_env 확인

 

가상환경을 만들었으면 파이참을 실행 시킨 후 'File' -> 'New Project'를 선택하여 새로운 프로젝트를 만든다.

Location 에디터박스에서 02_lectures폴더 밑에 lectures 폴더를 만든다. 앞으로 Python-OpenCV의 소스코드를 작성할 파이참 프로젝트 폴더이다.

 

Lacation 에디터 박스 밑에 Project Interpreter. 를 선택하면 두 개의 라디오 체크 박스가 나온다.

New envionment using 라디오 박스는 현재 파이참으로 만든 프로젝트 안에 새로운 가상환경을 만들겠단 소리이다. 이렇게 만든 가상환경은 해당 프로젝트에서 사용할 수 있다.

우리는 이미 만들어 놓은 가상환경이 있기 때문에 Exisitin Interpreter를 선택한다.

 

전 프로젝트에서 설정해 놓은 가상환경이 있어서 해당 가상환경이 선택되어져 있다. 이 가상환경이 아니라 새로만든 lectures_env를 선택해 보도록 하자.

아래 이미지를 대로 진행하면 된다.

'...' 을 클릭하여 File 경로를 선택할 수 있는 창을 생성한다.

 

만들어 놓은 가상환경을 선택한 후 프로젝트를 생성한다.

 

이제 가상환경 셋팅이 끝났다. 파이참에서 생성한 프로젝트에 새로운 Python 파일을 만든 후 OpenCV 버전을 확인해 보자

 

'karma( 업 ) > Python' 카테고리의 다른 글

2. 다차원 배열 생성하기  (0) 2019.05.06
1. NumPY ?  (1) 2019.05.05
Python, Virtualenv, OpenCV, PyCharm 설치( 2 )  (0) 2019.05.01
Python, Virtualenv, OpenCV, PyCharm 설치( 1 )  (0) 2019.05.01
초보자를 위한 파이썬 300제  (0) 2019.04.15
Posted by 생짜
|

Python을 다운 받아 설치한다.( Download Site )

링크를 클릭하여 설치할 Python을 다운 받는다. 나는 3.7.3 windwos 버전을 받아 설치했다.

 

Python 3.7.3 Windows version download

 

설치시 꼭 환경 설정 체크박스에 체크하자. 안그러면 설치 후 따로 환경설정을 해야 한다. 그 외에는 언제나 그렇듯이 'Next' 이다.

Python 설치 시 꼭 PATH에 체크하자.

Python 설치가 끝나면 windows console 창을 실행 시켜 Python, pip 설치 여부를 확인하자

 

Python이 제대로 설치되어 있는 것을 확인했다. 이제 Python 가상환경인 virtualenv를 pip를 이용해서 설치해 본다.

virtualenv를 설치할 장소는 python을 설치한 곳으로 python 개발환경의 원본이 있는 곳으로 virtualenv는 글로벌하게 이 곳, 딱 한군데에 설치한다. 후에 설치된 virtualenv로 필요한 곳에 가상환경 폴더를 만들고 만들어진 가상환경 폴더에서 pip를 이용하여 작업에 필요한 여러 python 라이브러리를 설치하면 된다.

 

virtualenv 설치 및 버전확인

 

가상환경, 실제 프로젝트에서 사용할 컴파일 환경을 만든다.

원하는 위치에 가상환경을 만들었다.

가상환경 폴더 아래에 있는 Scripts 폴더

 

이 가상환경을 사용하는 프로젝트는 Scripts폴더에 있는 Python을 사용하여 컴파일을 하고 pip로 install한 lib를 사용하게 된다. 

 

이제 설치한 가상환경에 pip를 이용하여 이 가상환경에서만 사용할 openCV를 설치해본다. 가상환경에 라이브러리를 설치하려면 먼저 가상환경을 활성화 시켜야 한다. 가상환경을 활성하, 비활성화하는 명령은 \Scripts 폴더 밑의 'activate'/'deactivate' 명령어이다.

 

activate로 활성화 시켰다가 deactivate로 비화설화 시킨 상태

 

activate로 가상환경을 활성화 시키며 앞에 가상환경 폴더명이 나오는 것을 볼 수 있다. 이 상태에서 pip로 라이브러리를 설치하는 것이다.

 

OpenCV 설치화면

 

OpenCV를 설치 후 확인을 위해 Python을 실행시켜 버전 프린트

 

다음은 마지막으로 파이참 설치 후 virtualenv로 만든 가상환경을 파이참 프로젝트에 셋팅하여 확인해보자

'karma( 업 ) > Python' 카테고리의 다른 글

1. NumPY ?  (1) 2019.05.05
Python, Virtualenv, OpenCV, PyCharm 설치( 3 )  (0) 2019.05.01
Python, Virtualenv, OpenCV, PyCharm 설치( 1 )  (0) 2019.05.01
초보자를 위한 파이썬 300제  (0) 2019.04.15
Virtualenv?(Python 가상환경)  (0) 2019.04.15
Posted by 생짜
|

Python을 설치하고 딥러닝을 공부하기 전에 이런 의문이 들었다.

왜 딥러닝에 Python을 많이 쓸까?

 

딥러닝/머신러닝 개발에 가장 많이 사용하는 언어는 Python, 1위다.

Python의 라이브러리는 다른 언어에서는 따로 올 수 없는 부분이라고 한다. NumPy는 텐서 연산에서 사실상 표준 API 역할을 한다. Python은 데이터 과학 분야를 위한 표준 프로그래밍 언어가 되어 가고 있다. 판다스(Pandas)는 R의 강력하고 유연한 데이터프레임을 파이썬으로 가져온다. 자연어 처리(NLP)에서는 이름도 유명한 NLTK와 빠른 속도가 장점인 스페이시(SpaCy)가 있다. 머신러닝 쪽에는 역전의 사이킷-런(Scikit-learn)이 있다. 딥 러닝이라면 현재의 모든 라이브러리(텐서플로우(TensorFlow), 파이토치(PyTorch), 체이너(Chainer), 아파치 MXNet(Apache MXNet), 테아노(Theano) 등)가 사실상 파이썬을 가장 우선시하는 프로젝트다.

파이선은 AI 연구의 최전방에 선 언어다. 대부분의 머신러닝과 딥 러닝 프레임워크는 파이썬용으로 만들어지며, AI 분야에서 일하는 거의 모든 사람들이 파이썬을 이야기한다. 하루에 적어도 한 번은 공백 문제 때문에 욕이 나오게 하는 언어임에도 바로 이러한 이유로 AI 프로그래밍 언어 중 1위로 꼽힌다.

 

 

JavaJVM 언어군(자바, 스칼라, 코틀린, 클로저 등) 역시 AI 애플리케이션 개발을 위한 좋은 선택이다. 자연어 처리(CoreNLP), 텐서 연산(ND4J) 또는 GPU 가속 딥 러닝 스택(DL4J) 등, 파이프라인의 모든 부분에서 풍부한 라이브러리를 사용할 수 있다. 또한 아파치 스파크, 아파치 하둡과 같은 빅 데이터 플랫폼에 대한 접근성도 우수하다.

 

C/C++, AI 애플리케이션을 개발할 때 가장 먼저 떠오르는 언어는 아니란다. 사실 실망이다. 하지만 임베디드 환경을 다루고 자바 가상 머신이나 파이썬 인터프리터의 오버헤드를 감당할 수 없다면 C/C++가 해답이 된다. 시스템에서 마지막 한 방울까지 성능을 짜내야 하는 상황에서는 내키지 않더라도 포인터의 세계로 다시 돌아갈 수밖에 없다. 

C/C++ 코딩은 여러 가지 접근 방법 중에서 선택이 가능하다. 바닥까지 뛰어들어 CUDA와 같은 라이브러리를 사용해서 GPU에서 바로 실행되는 자체 코드를 작성할 수 있고, 텐서플로우 또는 카페(Caffe)를 사용해서 유연한 고수준 API에 접근하는 방법을 사용할 수도 있다. 후자의 경우 데이터 과학자가 파이썬으로 만든 모델을 가져온 다음 C/C++의 장점인 속도를 십분 발휘해 프로덕션에서 실행하는 것도 가능하다. 임베디드에서는 OpenCV의 YOLO가 있다.


자바스크립트, 구글은 최근 웹 브라우저에서 머신러닝 모델의 학습 및 실행이 가능한 WebGL 가속 라이브러리인 TensorFlow.js를 출시했다. 여기에는 케라스(Keras) API, 그리고 정규 텐서플로우에서 학습된 모델을 로드하고 사용할 수 있는 기능도 포함된다. 이는 AI 영역으로 개발자들을 대대적으로 끌어들일 가능성이 높다. 현재 자바스크립트에서 이용할 수 있는 머신러닝 라이브러리는 다른 언어만큼 풍족하지는 않지만, 개발자들이 리액트(React) 구성 요소 또는 CSS 속성을 추가하는 것만큼 아무렇지도 않게 웹 페이지에 신경망을 추가하게 되는 날이 곧 온다. 생각만 해도 기대와 두려움이 동시에 느껴진다.

TensorFlow.js는 초기 단계다. 현재 브라우저에서 작동하지만 Node.js에서는 안 된다. 전체 텐서플로우 API 구현도 아직 되지 않는다. 그러나 필자는 2018년 말까지 이 두 가지 문제가 모두 해결되고, 그 직후 자바스크립트의 AI 침공이 뒤따를 것으로 예상한다.

 


R, ? R은 잘 모르겠다. 사실 관심밖이다. ㅎㅎㅎ

 

이렇게 까지가 상위 5개의 언어이고 Python을 가장 많이 쓰는 이유는 풍부한 lib와 배우기 쉽기 때문이란다. 

Posted by 생짜
|
Posted by 생짜
|

Virtualenv는 일종의 가상환경이라고 생각하자. 실제적으로는 하나의 폴더로 Python 컴파일 환경을 만들 수 있는 도구이다. 즉 하나의 컴퓨터 하드에 여러개의 파이썬 개발환경을 셋팅할 수 있도록 도와주는 환경으로 하나의 Python 컴파일 환경은 하나의 폴더로 이루어져 있다.

 

그렇다면 Virtualenv를 사용하여 가상의 컴파일 환경을 왜 만드는 걸까?

 

Python은 여러가지 외부 lib를 사용하고 각각의 lib는 pip를 통해 설치 삭제가 가능하다. Python의 각 외부 lib는 서로 조합하여 사용할 때 버전별로 충돌되는 현상이 발생할 수도 있다.  그렇기 때문에 pip와 virtualenv를 통해 각 프로젝트마다 각각의 lib를 따로 설치하고 각 프로젝트에서 사용하는 Python 컴파일 환경을 따로 만드는 것이다.  

 

다시 말해 virtualenv는 Python, pip, PypI로 부터 설치된 라이브러리들의 복사본을 만듦으로서 독립적인 파이썬 개발환경을 만들어 주는 도구이다

 

Python에는 이와 같이 가상환경을 도와주는 여러도구들이 있다. 인터넷에서 Python 설치를 치면 가장 많이 나오는 것이 conda이고 이 conda에 UI를 입힌게 anaconda이다. anaconda는 쥬피터 노트북과 궁합이 잘 맞고 virtualenv는 파이참고 궁합이 맞다고 한다. anaconda보다 virtualenv를 사용하는 이유는 좀더 작고 효율적이기 때문이다.

특히 anaconda는 리눅스 또는 맥에서 설치가 비교적 쉽지만 windows에서는 설치가 어려운 단점이 있다.

'karma( 업 ) > Python' 카테고리의 다른 글

Python, Virtualenv, OpenCV, PyCharm 설치( 1 )  (0) 2019.05.01
초보자를 위한 파이썬 300제  (0) 2019.04.15
pip(package installer for Python)?  (0) 2019.04.15
웹크롤링 좀 더 잘하기 From SlideShare  (0) 2018.11.16
None  (0) 2018.11.16
Posted by 생짜
|

아주 예전에는 vc++6.0 하나만 설치하면 끝이었던 시절도 있었다. 물론 Setting... 등에서 따로 환경을 설정해 주기는 했다. 그 외 Embedded를 한다면 따로 설치해야할 개발환경이 존재하긴했다. 그러나 지금처럼 플랫폼마나 랭귀지마다 설치했던게 많지는 않았던것 같다.

 

Python 문법이야..어럽다거나 하지는 않았다. 아니 사실 Python을 비롯해서 새로운 플랫폼이나 랭귀지 등등이 어렵다고 느껴본 적은 이제 없다. ㅋㅋㅋ

 

오히려 어려운 것은 설치, install 이었다.

 

위키백과에 따르면 pip는 파이썬으로 작성된 패키지 소프트웨어를 설치, 관리하는 관리 시스템이며 Python Package Index(PyPI)에서 패키지들을 찾을 수 있다고 한다. PyPI는 third-party 파이썬 오픈소스 패키지들을 위한 저장소이다. Python 2.7.9와 Python 3.4 버전 이후는 pip가 자동으로 설치된다고 한다. 나는 window에 Python3.7을 설치했고 window에서 cmd로 'pip' 명령어가 동작하는 것을 확인했다. pip가 자동으로 설치되어 있다.

 

Python 2.7 이하로는 pip를 사용하기 위해 따로 설치를 해줘야 한다.

sudo easy_install pip

 

기본적으로 Python은 easy_install 패키지 매니저가 자동으로 설치된다. 

 

아래는 간단하게 PIP 사용법을 정리한 사이트이다.

https://www.codingfactory.net/11346

 

'karma( 업 ) > Python' 카테고리의 다른 글

초보자를 위한 파이썬 300제  (0) 2019.04.15
Virtualenv?(Python 가상환경)  (0) 2019.04.15
웹크롤링 좀 더 잘하기 From SlideShare  (0) 2018.11.16
None  (0) 2018.11.16
for~else  (0) 2018.11.16
Posted by 생짜
|

'karma( 업 ) > Python' 카테고리의 다른 글

Virtualenv?(Python 가상환경)  (0) 2019.04.15
pip(package installer for Python)?  (0) 2019.04.15
None  (0) 2018.11.16
for~else  (0) 2018.11.16
제어문, 함수, 클래스의 끝은 ':'  (0) 2018.11.16
Posted by 생짜
|

None

karma( 업 )/Python 2018. 11. 16. 12:39

Python의 'None' 값은 Javascript의 'undefined' 와 같은 역할을 한다.

변수가 정의되어 있지만 아무 값도 할당받지 않은 상태를 뜻한다.

None을 값으로 가지고 있는 변수는 empty 상태, 아무런 값도 없는 상태이다.


변수를 선언할 때 초기화 하거나 자료형을 결정하지 않은 상태로 선언하고 싶을 때 사용한다.

함수에서 아무런 값도 없이 리턴할 경우도 None을 사용할 수 있다.


i = None

if i == None:

i = 10

else:

print("I is Not Note") 


'karma( 업 ) > Python' 카테고리의 다른 글

pip(package installer for Python)?  (0) 2019.04.15
웹크롤링 좀 더 잘하기 From SlideShare  (0) 2018.11.16
for~else  (0) 2018.11.16
제어문, 함수, 클래스의 끝은 ':'  (0) 2018.11.16
print 함수 줄바꿈 금지 인자 end=""  (0) 2018.11.16
Posted by 생짜
|

for~else

karma( 업 )/Python 2018. 11. 16. 11:11

for~else 문법이 Python에만 있는 것인지는 모르겠지만 처음 보고 깜놀했다.

생전 처음 보는 문법이었다. ㅎㅎ

한마디로 말해서 for~else의 else는 for문이 break문이나 어떠한 문제점이 없이 정상적으로 끝났을 때

실행되는 부분이다.


for~else 문법

for 변수 in 범위:

반복실행 코드

else:

for 구문이 정상적으로 실행되었을 대 실행되는 코드


for~else 예

for i int range(10):

print(i)

else:

print("Done") 





'karma( 업 ) > Python' 카테고리의 다른 글

웹크롤링 좀 더 잘하기 From SlideShare  (0) 2018.11.16
None  (0) 2018.11.16
제어문, 함수, 클래스의 끝은 ':'  (0) 2018.11.16
print 함수 줄바꿈 금지 인자 end=""  (0) 2018.11.16
Making a QML Application in Python  (0) 2018.07.06
Posted by 생짜
|

Python은 제어문, 함수, 클래스의 블럭을 나타낼 때 다른 언어들과 다르게 중괄호({,})를 사용하지 않고 들여쓰기(indentation)를 사용한다.


대부분 tab키를 사용하여 들여쓰기를 한다.


제어문(if, for, while)과 함수이름, 클래스 이름의 끝은 ':' 로 마무리를 하고 해당 블럭까지 들여쓰기를 하면 된다. 들여쓰기가 끝나는 곳이 해당 블럭의 끝이다.


제어문

if 1 == true  :

print("참", end="") #줄바꿈을 하지 않는다.


for i in test_list :

print(i) #줄바꿈을 한다.


 i =0

while i != 0 :

print("i is true");

print("i is false")


함수

def sum(a, b):

return a+b


클래스

 class Cal:

def __init__(self):

self.result = 0

def add(self, num):

sefl.result += num

return self.result













'karma( 업 ) > Python' 카테고리의 다른 글

None  (0) 2018.11.16
for~else  (0) 2018.11.16
print 함수 줄바꿈 금지 인자 end=""  (0) 2018.11.16
Making a QML Application in Python  (0) 2018.07.06
PySide2 소개  (0) 2018.07.06
Posted by 생짜
|