C/C++에 Python을 포함시키려면 비교적 간단합니다. VC에 Python의 포함 파일 디렉터리와 lib 파일 디렉터리를 추가하면 됩니다. Python을 C/C++에 삽입하는 방법을 살펴보겠습니다.
VC6.0에서 도구->옵션->디렉터리->디렉터리 표시를 열고 Python 설치 디렉터리의 포함 디렉터리를 포함 파일 항목에 추가하고 libs 디렉터리를 라이브러리 파일 항목에 추가합니다. .
VC2005에서 도구->옵션->프로젝트 및 솔루션->VC++ 디렉토리를 열고 동일한 작업을 수행합니다.
코드는 다음과 같습니다.
디버그 실행 시 "python31_d.lib 파일을 찾을 수 없습니다"라는 오류가 발생했습니다. 원인은 나중에 밝혀졌습니다. python31_d.lib 파일이 있어야 합니다. 디버그 시 생성되고, 그렇지 않으면 릴리스에서만 생성 가능
#include <python.h> int main() { Py_Initialize(); PyRun_SimpleString("Print 'hi, python!'"); Py_Finalize(); return 0; }
Py_Initialize 함수 프로토타입은 다음과 같습니다: void Py_Initialize()
이 함수는 삽입 시 사용해야 합니다. Python을 C/C++로 변환하면 초기화됩니다. Python 인터프리터는 다른 Python/C API를 사용하기 전에 이 함수를 호출해야 합니다. Py_IsInitialized 함수를 사용하여 초기화가 성공했는지 확인하고 성공하면 True를 반환할 수 있습니다.
PyRun_SimpleString 함수의 프로토타입은 Python 코드 조각을 실행하는 데 사용되는 int PyRun_SimpleString(const char *command)입니다.
참고: 문 사이에 들여쓰기를 유지해야 합니까?
Py_Finalize 함수의 프로토타입은 Python 인터프리터를 닫고 인터프리터가 점유한 리소스를 해제하는 데 사용되는 void Py_Finalize()입니다.
PyRun_SimpleFile 함수는 ".py" 스크립트 파일을 실행하는 데 사용할 수 있습니다. 함수 프로토타입은 다음과 같습니다:
int PyRun_SimpleFile(FILE *fp, const char *filename);
여기서 fp는 열린 파일 포인터이고 filename은 실행할 Python 스크립트 파일의 이름입니다. 그러나 이 함수의 공식 릴리스는 Visual Studio 2003.NET에서 컴파일되므로 다른 버전의 컴파일러를 사용하는 경우 버전 문제로 인해 FILE 정의에서 충돌이 발생할 수 있습니다. 동시에 단순화를 위해 다음 방법을 사용하여 이 함수를 대체할 수 있습니다:
PyRun_SimpleString("execfile('file.py')") //execfile을 사용하여 Python 파일 실행
Py_BuildValue( )는 Python에서 숫자와 문자열을 해당 데이터 유형으로 변환하는 데 사용됩니다(C 언어에서는 모든 Python 유형이 PyObject 유형으로 선언됩니다).
PyObject *Py_BuildValue (const char *format, …..);
PyString_String()은 PyObject* 유형 변수를 C 언어에서 처리할 수 있는 char* 유형으로 변환하는 데 사용됩니다. 구체적인 프로토타입은 다음과 같습니다.
char * PyString_String(PyObject *p);
위는 C/C++에 Python을 삽입하는 방법에 대한 소개입니다.