사용자 도구

사이트 도구


project:embeddedpythongettingstarted

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
project:embeddedpythongettingstarted [2014/03/03 00:44] changwooproject:embeddedpythongettingstarted [2014/10/09 21:24] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 ====== Embedded Python 시작하기 ====== ====== Embedded Python 시작하기 ======
 +
 ===== 소개 ===== ===== 소개 =====
 파이썬은 참 매력적인 언어입니다. 리스트, 튜플, 딕셔너리 같은 자료형들이 기본적으로 제공되고, 풍부한 라이브러리는 물론 쓰기도 편리합니다. 그리고 다른 언어와도 잘 어울립니다. 흔히 이를 일컬어 '풀 언어 (glue language)'라고 하죠. 파이썬은 참 매력적인 언어입니다. 리스트, 튜플, 딕셔너리 같은 자료형들이 기본적으로 제공되고, 풍부한 라이브러리는 물론 쓰기도 편리합니다. 그리고 다른 언어와도 잘 어울립니다. 흔히 이를 일컬어 '풀 언어 (glue language)'라고 하죠.
줄 13: 줄 14:
  
 === Extending === === Extending ===
-파이썬에서 extending, 즉 '확장'했다는 말은 파이썬 측에서 다른 언어를 바인딩하여 다른 언어가 제공하는 기능을 활용하는 것입니다. **파이썬에서 C/C++ 코드를** 쓰는 것은 이 예입니다.+파이썬에서 extending, 즉 '확장'했다는 말은 파이썬 측에서 다른 언어를 바인딩하여 다른 언어가 제공하는 기능을 활용하는 것입니다. **파이썬에서 C/C++ 코드를** 쓰는 것은 이 예입니다. 본 문서는 이 부분을 다루지는 않습니다만 'extended python'이란 용어 자체는 '확장된 파이썬', python extension은 '파이썬 확장'이라고 해석하도록 하겠습니다.
  
 === Embedding === === Embedding ===
-Extending의 반대입니다. 파이썬이 다른 코드에 '삽입'되었다는 뜻이며 **C/C++에서 파이썬 코드를** 쓴다는 것은 이 쪽의 예입니다. 본 문서에서는 'embedded python'을 '삽입된 파이썬'으로 번역해 쓰겠습니다. Extending은 차후에 기회가 된다면 따로 다룰 생각이며, 본 문서에서는 삽입된 파이썬에 대해서만 다룹니다.+Extending의 반대입니다. 파이썬이 다른 코드에 '삽입'되었다는 뜻이며 **C/C++에서 파이썬 코드를** 쓴다는 것은 이 쪽의 예입니다. 본 문서에서는 'embedded python'을 '삽입된 파이썬'로, 'python embedding'은 '파이썬 삽입' 정도로 번역해 쓰겠습니다. Extending은 차후에 기회가 된다면 따로 다룰 생각이며, 본 문서에서는 삽입된 파이썬에 대해서만 다룹니다.
  
 파이썬을 삽입하는 주체가 되는 언어는 C/C++로 한정하겠습니다. 사실 C 이외에 여러 다양한 언어가 파이썬과의 통합을 지원합니다. 심지어 같은 스크립트 언어인 [[http://search.cpan.org/dist/pyperl/|Perl]]과도 가능합니다. 가능한 언어의 종류는 [[https://wiki.python.org/moin/IntegratingPythonWithOtherLanguages|파이썬 위키]]를 참고하세요. 파이썬을 삽입하는 주체가 되는 언어는 C/C++로 한정하겠습니다. 사실 C 이외에 여러 다양한 언어가 파이썬과의 통합을 지원합니다. 심지어 같은 스크립트 언어인 [[http://search.cpan.org/dist/pyperl/|Perl]]과도 가능합니다. 가능한 언어의 종류는 [[https://wiki.python.org/moin/IntegratingPythonWithOtherLanguages|파이썬 위키]]를 참고하세요.
줄 59: 줄 60:
 </code> </code>
 pip가 패키지 삭제 기능도 있어 좀 더 편리합니다. pip가 패키지 삭제 기능도 있어 좀 더 편리합니다.
 +
 +본 문서에서는 직접적으로 easy_install이나 pip를 직접적으로 필요로 하지 않습니다. 설치 시 참고만 하시면 됩니다.
 === Linux === === Linux ===
 배포판별로 차이가 조금씩 있겠지만, 리눅스는 거의 기본적으로 파이썬이 포함되어 있습니다. 문서의 설명을 따라해 보기 위해서는 파이썬 2버전에 맞춰 주기만 하면 됩니다.  배포판별로 차이가 조금씩 있겠지만, 리눅스는 거의 기본적으로 파이썬이 포함되어 있습니다. 문서의 설명을 따라해 보기 위해서는 파이썬 2버전에 맞춰 주기만 하면 됩니다. 
줄 67: 줄 70:
 비주얼 스튜디오에서 빌드하려면 따로 include path, library path를 프로젝트 설정에서 지정해 주어야 합니다. [[http://msdn.microsoft.com/en-us/library/a4xbdz1e%28v=vs.90%29.aspx|Property sheet]]를 사용하는 것이 편리하겠죠. 비주얼 스튜디오에서 빌드하려면 따로 include path, library path를 프로젝트 설정에서 지정해 주어야 합니다. [[http://msdn.microsoft.com/en-us/library/a4xbdz1e%28v=vs.90%29.aspx|Property sheet]]를 사용하는 것이 편리하겠죠.
  
-불행히도, 또는 일반적으로도 그렇듯이 유닉스 계열에 비해 윈도우 쪽이 빌드할 때 훨씬 까다롭습니다. 일단 윈도우에서는 이후 설명할 ''python-config-X.Y''를 사용할 수가 없습니다. 파이썬 자체에서 제공하는 [[http://docs.python.org/2.7/library/sysconfig.html|sysconfig 모듈]]을 이용하는 방법도 있으나 이마저도 빌드에 필요한 모든 정보가 제공되지는 않습니다. 대체로 ''.lib'' 파일은 ''C:\Python27\libs''에 설치됩니다.+불행히도, 또는 일반적으로도 그렇듯이 유닉스 계열에 비해 윈도우 쪽이 빌드할 때 훨씬 불편합니다. 일단 윈도우에서는 이후 설명할 ''python-config-X.Y''를 사용할 수가 없습니다. 파이썬 자체에서 제공하는 [[http://docs.python.org/2.7/library/sysconfig.html|sysconfig 모듈]]을 이용하는 방법도 있으나 이마저도 빌드에 필요한 모든 정보가 제공되지는 않습니다. 대체로 ''.lib'' 파일은 ''C:\Python27\libs''에 설치됩니다. 
 + 
 +또한 디버그 버전 빌드 때에는 링킹 단계에서 ''python27_d.lib'' 파일을 찾을 수 없다는 메시지까지 나옵니다. 파이썬 공식 홈페이지에서 받은 인스톨러 패키지에는 디버그 버전의 라이브러리가 빠져 있기 때문입니다. ''python27_d.lib'' 파일을 온전히 생성하려면 파이썬 소스를 받아다 직접 컴파일해야 합니다.
  
-또한 디버그 버전 빌드 때에는 링킹 단계에서 ''python27_d.lib'' 파일을 찾을 수 없다는 메시지까지 나옵니다. ''python27_d.lib'' 파일을 온전히 생성하려면 파이썬 소스를 받아다 직접 컴파일하는 방법 밖는 없습니다. 파썬 소스를 보고 싶으시다면 모를까상당히 번거니 다지 권장지 않습니다그냥 ''python27.lib'' 파일을 복사여 ''python27_d.lib'' 을 는 편법을 쓰는 것도 나쁘지 않습니다. 만일 이 lib 파일이 static library면 이대로 실행하는 데 문제가 없습니다만, 혹시나 dynamic library인지 확인해 보세요. 만약 그렇다면 ''C:\Python27\DLLs''도 환경변수를 등록해야 할 겁니다.+참고로 파이썬은 bzip, Berkely DB, OpenSSL, SQLite, Tcl/Tk에 의존성이 고, 또 의존성 패키지들은 Perl과 NASM 등을 필요로 니다. 윈도우에 패키지 관리자가 있었으면 참 좋겠는데 는 생각이 들죠아무튼 비주얼 스튜디오를 이용는 경우 직접 이썬을 지 않는 한 좀 아쉽더라도 릴리즈 모드를 이용해야 할 겁니다.
  
 MinGW를 이용한다면 ''-I'' 옵션과 ''-L'' 옵션, 그리고 ''-lpython27'' 옵션까지 다 집어 넣으면 되겠습니다. 인스톨러에 ''libpython27.a''가 같이 제공됩니다. MinGW를 이용한다면 ''-I'' 옵션과 ''-L'' 옵션, 그리고 ''-lpython27'' 옵션까지 다 집어 넣으면 되겠습니다. 인스톨러에 ''libpython27.a''가 같이 제공됩니다.
project/embeddedpythongettingstarted.1393807480.txt.gz · 마지막으로 수정됨: 2014/10/09 21:23 (바깥 편집)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki