Python C 연동 끄적이기
파이썬에서 c언어를 연동해서 사용하는 법을 알아보자
python에서 c언어를 사용하는 방법도 있고 c언어에서 python을 사용하는 방법이 있다.
나는 python을 알아보고 있기 때문에 python에서 c언어를 사용할 수 있도록 extending 방법을 사용하려고 한다.
window 환경이므로 c언어 컴파일러를 설치해줘야한다.
mingw
64bit window이므로 64bit를 기준으로 진행한다.
- https://sourceforge.net/projects/mingw-w64/files/ 여기서
mingw-W64-install.exe
를 설치를 해줘야한다.
공식 홈페이지에서는 32bit 지원을 기준으로 한다.
Next -> Architecture : x86_64 -> Threads : win32
로 설정한다.환경변수 설정(Path) : 보통 경로는
C:\Program Files\mingw-w64\x86_64-8.1.0-win32-seh-rt_v6-rev0\mingw64\bin
다.cmd키고
gcc --version
을 입력해서 잘나오면 완료
c언어 파일 만들기
그냥 단순한 덧셈기를 만들도록 하겠다.
1
2
3
4
5
//cal.c
int plus(int a, int b) {
return a + b;
}
인자값 a,b를 넣으면 더한 값이 반환되는 함수
동적 라이브러리(DLL) 만들기
1
2
gcc -fPIC -c cal.c
gcc --shared -o cal.dll cal.o
특정한때에 load되는 라이브러리
컴파일러 과정에서 linker가 동작되는 부분에 해당한다.
1
main.c -(preprocessor)-> main.i -(compiler)-> main.s -(assembler)-> main.o -(linker)-> main
python언어 파일 만들기
1
2
3
4
5
6
7
8
9
10
from ctypes import cdll
def plus(a, b):
cal = cdll.LoadLibrary('cal.dll')
return cal.plus(a,b)
result = plus(10, 3)
print(result)
+ 추가 파이썬 실행파일(.exe) 만들기
- pyinstaller 설치하기
1
pip install pyinstaller
- pyinstaller로 실행파일 만들기
파일 하나만 만들기
1
2
3
4
5
pyinstaller --onefile 실행파일.py
or
pyinstaller -F 실행파일.py
- 동적 라이브러리 등 필요한 파일 같이 만들기
1
pyinstaller 실행파일.py
- 콘솔창 제거
1
pyinstaller -w 실행파일.py
- 아이콘 생성
1
pyinstaller --icon=icon.ico 실행파일.py
Reference
This post is licensed under CC BY 4.0 by the author.