project:embeddedpython
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판 | ||
project:embeddedpython [2014/03/02 05:00] – [Windows] changwoo | project:embeddedpython [2014/10/09 21:24] (현재) – 바깥 편집 127.0.0.1 | ||
---|---|---|---|
줄 1: | 줄 1: | ||
- | ====== Embedded Python | + | ====== Embedded Python ====== |
- | ===== 소개 ===== | + | 2014년 3월 현재 |
- | 파이썬은 참 매력적인 언어입니다. 리스트, 튜플, 딕셔너리 같은 자료형들이 기본적으로 제공되고, | + | |
- | + | ||
- | /* 사실 저는 그동안 ' | + | |
- | + | ||
- | 파이썬은 C/C++에 비해 수행 속도가 느립니다. 대신 매우 생산성이 높습니다. 그러니 둘 사이를 잘 절충하여 좋은 구현을 만들어 보자는 것이 핵심이겠죠. 이는 두 가지로 방법으로 이해해볼 수 있습니다. | + | |
- | * 파이썬 기반 프로그램을에서, 빠른 처리가 필요한 부분을 C/C++로 만든다. **파이썬에서 C/C++ 코드를** 쓴다. | + | |
- | * C/C++ 기반 프로그램에서, | + | |
- | + | ||
- | ==== Extending vs. Embedding ==== | + | |
- | 문서나 웹을 검색해보면 ' | + | |
- | + | ||
- | === Extending === | + | |
- | 파이썬에서 extending, 즉 ' | + | |
- | + | ||
- | === Embedding === | + | |
- | Extending의 반대입니다. 파이썬이 다른 코드에 ' | + | |
- | + | ||
- | 파이썬을 삽입하는 주체가 되는 언어는 C/C++로 한정하겠습니다. 사실 C 이외에 | + | |
- | + | ||
- | 파이썬 삽입을 | + | |
- | * 파이썬 및 파이썬의 라이브러리들을 활용할 수 있습니다. 유연하고 자유분방한 파이썬을 이용해 빠르게 모듈을 생성합니다. ' | + | |
- | * 핵심 모듈을 매번 컴파일할 필요가 없습니다. 컴파일할 필요도 없을 뿐더러 모듈만 따로 파이썬 인터프리터를 통해 간편하게 테스트할 수 있습니다. 모듈 변경에 있어 상당히 유연해집니다. | + | |
- | + | ||
- | 그러나 다음과 같은 사항은 꼭 고려해 | + | |
- | * 암만 | + | |
- | * C/C++ 쪽에서 아무런 준비 없이 파이썬을 호출할 수는 없습니다. 그러한 인터페이스를 만드는 것 자체에 약간의 오버헤드는 있을 수 있으니, 그 오버헤드를 | + | |
- | * 언어와 언어가 교착하는 접점에서의 디버깅은 | + | |
- | * 만들어진 소프트웨어를 배포할 경우, 파이썬의 코드가 반드시 포함되어야 합니다. Python C API의 라이브러리 뿐 아니라 의존성 있는 파이썬 스크립트까지 모두 포함해서 말입니다. 파이썬이 기본적으로 포함된 리눅스나 맥 기반이면 큰 부담은 없지만, 윈도우라면 정말 최악의 경우 사용자에게 파이썬 기본 설치를 요구할 수도 있습니다. | + | |
- | ===== 준비하기 ===== | + | |
- | ==== 파이썬 다운로드 및 설치 ==== | + | |
- | 파이썬 언어가 시스템에 설치되어 있어야겠죠. 각 플랫폼별로 나누어 간략하게 설명하겠습니다. | + | |
- | === Windows === | + | |
- | 윈도우는 모든 언어의 인터프리터, | + | |
- | 2014년 3월 현재 Python 2.X의 최신 버전은 2.7.6이며 이를 대상으로 | + | |
- | + | ||
- | 설치한 후 환경변수 설정을 해 주어야 쓰기 편하죠. 기본적으로 '' | + | |
- | <code dos> | + | |
- | > python --version | + | |
- | Python 2.7.6 | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | 별도로 파이썬 패키지 설치를 한다면 [[https:// | + | |
- | <code dos> | + | |
- | > python setup.py install | + | |
- | Python 2.7.6 | + | |
- | </ | + | |
- | 하면 설치가 됩니다. 이렇게 하면 '' | + | |
- | <code dos> | + | |
- | > | + | |
- | setuptools 2.2 | + | |
- | </ | + | |
- | + | ||
- | ' | + | |
- | <code dos> | + | |
- | > | + | |
- | .... | + | |
- | </ | + | |
- | pip가 패키지 삭제 기능도 있어 좀 더 편리합니다. | + | |
- | === Linux === | + | |
- | 배포판별로 차이가 조금씩 있겠지만, | + | |
- | === MacOS === | + | |
- | + | ||
- | ==== 빌드 설정 ==== | + | |
- | === Windows === | + | |
- | === Linux === | + | |
- | === MacOS === | + | |
- | + | ||
- | ===== 개괄 ===== | + | |
- | ==== 시작 및 종료 ==== | + | |
- | ==== 경로 등록 ==== | + | |
- | + | ||
- | + | ||
- | ====== Embedded Python: Using C API ====== | + | |
- | ===== 일반적인 시나리오 ===== | + | |
- | ===== PyObject ===== | + | |
- | ===== 모듈 로딩 ===== | + | |
- | ===== 변수 선언 ===== | + | |
- | ===== 함수 호출 ===== | + | |
- | ===== 리턴 값 추출 ===== | + | |
- | + | ||
- | + | ||
- | ===== 파이썬 기본 자료형 다루기 ===== | + | |
- | ==== Type Casting ==== | + | |
- | ==== List ==== | + | |
- | ==== Tuple ==== | + | |
- | ==== Dictonary ==== | + | |
- | + | ||
- | + | ||
- | ====== Embedded Python: Boost:: | + | |
- | + | ||
- | ====== Embedded Python: QtPython ====== | + | |
+ | 소스 코드와 문서의 양을 생각했을 때, 분량이 상당하리라 생각하여 몇 개의 문서로 분할하여 작성한다. | ||
+ | - [[.: | ||
+ | - [[.: | ||
+ | - [[.: | ||
+ | - [[.: |
project/embeddedpython.1393736444.txt.gz · 마지막으로 수정됨: 2014/10/09 21:23 (바깥 편집)