Python 2.7 환경 구축하기

Python 설치

www.python.org에서 Python 2.7.91를 다운로드 받아 설치한다.

setup Library 사용하기

setup라이브러리는 c파일을 pyd형식으로 라이브러리화 하여 파이썬에서 사용할 수 있게 해주거나, py2exe를 이용해 exe파일로 배포할 수 있도록 해준다. 하지만 파이썬 2.7.9가 Visual C++ 2008 Express2에서 컴파일되었기 때문에 VC++ 2008의 라이브러리를 설치해야한다.

Python을 이용해 exe파일을 생성하기 위해서는 py2exe3 라이브러리가 필요하다.

C 모듈 만들기4

Python에서 사용할 C 모듈은 다음과 같이 만들 수 있다.

 1 // mylib.c
 2 
 3 #include "Python.h"
 4 #include <stdio.h>
 5 
 6  
 7 
 8 static PyObject *ErrorObject;
 9 
10  
11 
12 // 실제 동작하는 함수
13 
14 static PyObject* write_log(PyObject *self, PyObject *args) // 인자는 이와같이 고정된다.
15 {
16     char* msg;
17     FILE *fp;
18     
19     if(!PyArg_ParseTuple(args, "s", &msg))
20         return NULL;
21     
22     fp = fopen("c:\\pylog.txt", "wt+");
23     fprintf(fp, msg);
24 
25     fclose(fp);
26     
27     return Py_BuildValue("i", 0);    
28 }
29 /* methods 구조체 배열에 지정되는 정보는 {"실제사용할 메쏘드명", 메쏘드명에 대응하는 실제 동작하는 함수명, 인자 종류} */
30 
31 static struct PyMethodDef methods[] =
32 {
33     {"wlog", write_log, METH_VARARGS},
34     {NULL, NULL}
35 };
36 
37  
38 
39 //
40 
41 void initmylib()
42 {
43     PyObject* m;
44    
45 
46    // Py_InitModule("모듈명", 이모듈에 적용된 메쏘드들을 담을 구조체배열 포인터)
47     m = Py_InitModule("mylib", methods);
48 
49 
50     ErrorObject = Py_BuildValue("s", "error");
51 }

위 c코드를 컴파일하기 위해 setup.py 모듈을 작성한다.

 1 # setup.py
 2 
 3 from distutils.core import setup, Extension
 4 
 5 setup(name = "mylib",
 6         version = "1.0",
 7         description = "print log",
 8         author = "Samsjang",
 9         author_email = "samsjang@cdnetworks.co.kr",
10         url = "http://www.cdnetworks.co.kr",
11         ext_modules = [Extension("mylib", ["mylib.c"])]
12         )

리눅스 및 윈도에서 아래와 같이 빌드하고 설치한다.

1 python setup.py install

위의 명령은 리눅스에서는 gcc를 호출하며, 윈도에서는 visual C++ 컴파일러가 구동되면서 빌드한 후 파이썬 디렉토리의 Lib/site-packages 디렉토리에 mylib.so 또는 mylib.pyd 파일이 생성된다.

자 그럼 C모듈인 mylib 모듈을 실제 파이썬 코드에서 적용해보자.

1 # test.py
2 import mylib
3 
4 if __name__ == '__main__':    
5     mylib.wlog('I love U')

위의 결과는 C:\pylog.txt 파일에 “I love U” 라는 글을 남긴다.

exe 확장자 파일 생성하기

exe파일을 생성하기 위해서는 py2exe 라이브러리가 필요하다. cmd프로그램을 실행하지 않는 GUI기반 응용프로그램은 다음과 같이 setup 메소드의 windows 인자에 파일 명을 전달한다. console을 사용하는 경우에는 console로 대체된다.

1 # build.py
2 from distutils.core import setup
3 import py2exe
4 
5 setup(windows=["test.py"])

아래와 같이 빌드한다.

1 python build.py py2exe

wxPython 사용하기

wxWidget기반 GUI 자유 소프트웨어인 wxPython을 사용하려면 wxPython5 라이브러리와 빌드 도구인 wcFormBuilder6를 설치해야한다.


unimun

Your stylish, minimalist theme!