Python에서 C코드를 사용할 수 있나요?
Python이 API를 제공하므로 Python interpreter를 C코드로 호출할 수 있지만, 제가 원하는 것은 그 반대입니다.
내 프로그램은 C API를 사용해야 하므로 코드는 C로 작성되어야 합니다.하지만 Python으로 프로그램을 패키징하고 싶습니다.즉, Python에서 C 함수 또는 실행 파일을 호출합니다.가능할까요?
C 코드를 라이브러리로 하고 싶은 경우, 즉 C 코드는#include
및 링크*.o
Python에서는 어떻게 할 수 있을까요?가능할까요?C코드를 실행파일에 쓰면 명령어가 되는데 Python에서 직접 호출할 수 있나요?
또한 Python 코드를 컴파일 할 수 있다고 들었습니다만, 소스 파일 없이도 코드를 실행할 수 있는 것입니까?출력 파일이 바이너리 파일입니까?퍼포먼스가 향상됩니까?
그 C 함수나 실행 파일을 python으로 호출하고 싶습니다.그게 가능합니까?
네, Python에 Import할 수 있는 C 코드를 모듈로 작성할 수 있습니다.Python은 이러한 확장 모듈을 호출합니다.Python에서 직접 호출할 수 있습니다. 예를 들어 설명서에서 다음과 같습니다.
Python 코드
import example
result = example.do_something()
C코드
static PyObject * example(PyObject *self)
{
// do something
return Py_BuildValue("i", result);
}
C 코드를 라이브러리로 하고 싶은 경우, 즉 python의 *.o의 #include 및 link와 함께 사용하는 경우 방법 또는 가능한 경우.
공유 라이브러리 *.dll 또는 *.로 빌드할 수 있습니다.따라서 모듈을 배포하기 위해 왜곡을 사용할 수도 있습니다.
C 코드를 실행 파일에 쓰면 명령어가 됩니다만, 직접 python으로 호출할 수 있습니까?
*.exe를 쓰는 경우 그 반대입니다(C에서 Python을 호출합니다).선택하는 방법(exe vs 공유 라이브러리)은 "Python이 있는 C 프로그램" 또는 "C가 있는 Python 프로그램이 있는 Python 프로그램" 중 어느 쪽을 원하는지에 따라 달라집니다.
또한 python code를 컴파일 할 수 있다고 들었습니다만, 소스 파일 없이도 코드를 실행할 수 있는 것입니까?출력 파일이 바이너리 파일입니까?퍼포먼스가 향상됩니까?
Python은 실행 시 *.py 파일을 읽고 *.pyc 바이트 코드 파일로 컴파일합니다.그런 다음 바이트 코드가 Python 가상 머신에서 실행됩니다.즉, "소스에서 바이트 코드로의 재컴파일을 피할 수 있기 때문에 동일한 파일을 두 번째로 실행하는 것이 더 빠릅니다." (Python 용어집에서) 따라서 *.py 파일을 편집하지 않으면 *.pyc가 실행됩니다.*.py 파일 없이 *.pyc 파일을 배포할 수 있지만 암호화되지 않고 역설계할 수 있습니다.
Python을 확장할 필요는 없지만(소요하지 않은 btw), ctypes 등의 외부 함수 인터페이스를 사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/18762621/can-we-use-c-code-in-python
'programing' 카테고리의 다른 글
모듈의 공유 상태 액션을 사용한 Vuex 4 + Vue 3 (0) | 2022.06.04 |
---|---|
C++ -- x, y를 반환한다; 요점이 무엇인가? (0) | 2022.06.04 |
sprintf 버퍼 크기 결정 - 표준 규격은 무엇입니까? (0) | 2022.06.03 |
css 파일을 인라인 파일이 아닌 .css 파일로 출력하는 방법css 파일을 인라인 파일이 아닌 .css 파일로 출력하는 방법 (0) | 2022.06.03 |
Gradle 빌드를 사용한 IntelliJ IDEA의 Gradle 의존관계 취득 (0) | 2022.06.03 |