본문 바로가기

Python

.py to .dll/.pyd/.c 변환 참고 자료

.py 파일을 .dll로 바꾸는 방법

.py 파일을 .pyd로 바꾼 이후 (pyd가 dll이라고 하니) C에서 #include로 불러 들이는 방법

.py 파일을 .pyx로 바꾼 이후 .c로 바꾸는 방법

등 .py 파일을 C에서 사용할 수 있는 방법에 대한 여러 자료를 헷갈리지 않게 정리해보는 글

 

----------------------------------------------------------------------------------------------------------------------------

1. PY to PYD

https://stackoverflow.com/questions/51465837/convert-py-file-into-pyd-file 

 

- 질문

  : main.py 를 main.c로는 바꿨는데 main.pyd로 바꿀 수는 없을까?  main.c에서 main.pyd로 변환은 어렵더라.

- 답변

  : 넌 지금 네 script로 library를 만드는 방법이 필요한 것 같아.

    main.py 옆에 아래와 같이 setup.py를 만들어서 "python setup.py build_ext --inplace"를 돌려봐!

- 내가 따라한 결과

  : 아래와 같은 setup.py를 만들어서 hello.py를 바꿔보니 c파일과 pyd 파일이 생겼다.

setup.py
결과로 생성된 두 파일

 

2. CYTHON

http://docs.cython.org/en/latest/src/quickstart/build.html

 

Cython 코드는 Python과 달리 반드시 컴파일된다. (ㅋ)

- .pyx 파일은 Cython에 의해 .c 파일로 컴파일된다 (.c 파일 + Python extension module)

- .c 파일은 C 컴파일러에 의해 .pyd 파일로 컴파일된다 --> .pyd 파일은 Python에 바로 import된다. (관심 없음)

  └ distutils와 setuptools가 도와줌 

 

 

3. PYTHONNET

https://stackoverflow.com/questions/46317830/using-pyd-file-in-c

 

- 질문 : 난 C#으로 프로그램을 만들고 있는데,

           python으로 만들기 쉬운 건 .pyd 파일로 만들어서 C# 프로그램에서 쓰고싶어. 근데 어케하는지 모르겠어.

           ① C#에서 .pyd 파일을 어떻게 사용해?

           ② pyd 파일이 dll 파일이랑 비슷하다며. pyd 파일을 python이 깔리지 않은 컴퓨터에서 사용할 수 있는거 맞아?

- 답변 : pythonnet 사용해봐 tutorial은 여기있어.

 

 

 

//상관은 없지만 VSCode에서 C/C++ 프로그래밍하는 방법

https://webnautes.tistory.com/1158