Saturday, October 23, 2010

python 개발 환경 구축

요즘 보는 있는 python 책들 어디서나 IDE(intergrated development enviroment)로 eclipse와 PyDev를 추천한다. 해서 미루다 미루다 미루다 오늘 한번 새로운 IDE로 이를 써볼려고 install 중이다.


1.eclipse + PyDev install
의외로 간단하다. eclipse 홈피 가서 eclipse 다운받고(난 classic 버젼으로 다운 받음) 그뒤 eclipse 압축 풀고 그담에 실행 시키고 help 메뉴로 가서 install new software을 선택한 뒤에 work with란에 http://pydev.org/updates 라고 넣어준다음에 pydev를 클릭해서 인스톨한다.
그뒤 다시 eclipse를 재실행 시킨후 window 메뉴에서 preferences 메뉴를 선택한뒤 PyDev 트리 마이템을 펼쳐 Interpreter에 python을 선택한다. 그리고 나타나는 대화상자 상단에 python interpreter 섹션에 new 버튼을 클린한뒤에 browser에서 python실행 파일을 선택하고 open 버튼을 누르고 나면 선택한 인터프린터를 위한 라이브러리 리스트를 보여주는 대화상자가 나타나는데 ok 버튼을 누르면 설정이 끝나게 된다.
http://pydev.org/manual_101_install.html

2.동적 라이브러리란?
ctypes 이라는 python의 모듈이 있는데 C언어와 호완이 가능하게 하는 모듈로 동적 라이브러리는 가져다가 쓸수 있게 한다. 그런데 동적 라이브러리란 무엇인가. C 언어 include 설명때 본적이 있는것 같은데.. 그래서 링크를 걸어본다.
http://blog.naver.com/ddrkcodz?Redirect=Log&logNo=10069875361

3.gcc 설명 및 옵션
http://blog.naver.com/alan100?Redirect=Log&logNo=60045179899

3.동적 라이브러리 만들기
opcode (*.o)에서 프로그램에서 바로 동적 라이브러리 생성: http://adnoctum.tistory.com/231
정적 라이브러리 생성 후 이를 가지고 동적 라이브러리 생성 : http://blog.naver.com/mklife?Redirect=Log&logNo=150024128340

4.동적 라이브러리의 장점
http://blog.naver.com/no1rogue?Redirect=Log&logNo=30094944212

In conclusion
정리를 해보면.. 결국 ctypes 모듈로 C 언어로 된 라이브러리(동적 라이브러리) 를 사용하려면 
C 언어로 된 프로그램을 동적 라이브러리로 생성. 
오른쪽과 같은 libhello.c 프로그램이 있을때 
gcc -fPIC -c libhello.c   #컴파일을 하되 링크까지는 수행하지 않고 오브젝트 파일 까지만 생성한다.
gcc -shared -fPIC -o libhello.so libhello.o  #shared 옵션을 이용해서 공유(동적) 라이브러리 생성
오른쪽 그림과 같이 동적 라이브러리를 사용한 python 프로그램 생성


끝...


동적 라이브러리를 이용하는 C 언어 프로그램을 만들시에는 사용하는 동적 라이브러리가 /usr/lib64에 있어야 한다. (주의 : *.so 파일을 옮긴 뒤에 ldconfig를 해야 한다)