// PythonCall.cpp : Defines the entry point for the console application. // #include #include #include #include using namespace std; int main() { //initialize the interpreter Py_Initialize(); PyEval_InitThreads(); vector vectInterpreters; for( int i = 0; i < 100; i++ ) { PyThreadState* myNewInterpreter = Py_NewInterpreter(); //create a new interpreter if( 0 != myNewInterpreter ) { vectInterpreters.push_back(myNewInterpreter); } }//for( int i = 0; i < 100; i++ ) cout << endl << "All Interpreters Created..." << endl; int iNoInterpreters = vectInterpreters.size(); //get the interpreter size PyEval_ReleaseLock(); for( int j = 0; j < iNoInterpreters; j++ ) { PyThreadState* pcoInterpreter2 = vectInterpreters.at(j); if( 0 != pcoInterpreter2 ) { PyEval_AcquireLock(); PyThreadState_Swap(pcoInterpreter2); Py_EndInterpreter(pcoInterpreter2); PyThreadState_Swap(NULL); PyEval_ReleaseLock(); } } cout << endl << "All Interpreters Released..." << endl; cout << endl << "Press any key to exit..." << endl; getch(); return 0; }