VS调用python方法

一、  安装python3.7python

二、  Vs2010中配置python:函数

三、添加头文件:#include <Python.h>ui

四、问题:error LNK2001: 没法解析的外部符号 __imp__Py_Initialize@0spa

缘由: 因为Python版本和项目编译版本不匹配致使这个问题,本文出错的缘由是3d

解决: 1. 使用 Python x86版本,VS项目更改成Win32,包含目录及库目录一概为Python x86,可正常编译指针

       2. 使用 Python x64版本,经过配置管理器,在活动解决方案平台中新建X64平台,包含目录及库目录一概为Python x64,可正常编译orm

 

五、问题:error MSB6006:"CL.exe"已退出,代码为5

解决:在更改VC++目录时,改每一个目录要注意把下面的“从父级或项目默认设置继承”勾选上。对象

 

VS调用python经常使用接口:blog

void Py_Initialize(void)继承

初始化Python解释器,若是初始化失败,继续下面的调用会出现各类错误,惋惜的是此函数没有返回值来判断是否初始化成功,若是失败会致使致命错误。

 

int Py_IsInitialized(void)

检查是否已经进行了初始化,若是返回0,表示没有进行过初始化。

 

void Py_Finalize()

反初始化Python解释器,包括子解释器,调用此函数同时会释放Python解释器所占用的资源。

 

int PyRun_SimpleString(const char *command)

其实是一个宏,执行一段Python代码。

 

PyObject* PyImport_ImportModule(char *name)

导入一个Python模块,参数name能够是*.py文件的文件名。相似Python内建函数import。

 

PyObject* PyModule_GetDict( PyObject *module)

至关于Python模块对象的dict属性,获得模块名称空间下的字典对象。

 

PyObject* PyRun_String(const char* str, int start,PyObject* globals, PyObject* locals)

执行一段Python代码。

 

int PyArg_Parse(PyObject* args, char* format, …)

把Python数据类型解析为C的类型,这样C程序中才可使用Python里面的数据。

 

PyObject* PyObject_GetAttrString(PyObject *o, char*attr_name)

返回模块对象o中的attr_name 属性或函数,至关于Python中表达式语句,o.attr_name。

 

PyObject* Py_BuildValue(char* format, …)

和PyArg_Parse恰好相反,构建一个参数列表,把C类型转换为Python对象,使得Python里面可使用C类型数据。

 

PyObject* PyEval_CallObject(PyObject* pfunc, PyObject*pargs)

此函数有两个参数,并且都是Python对象指针,其中pfunc是要调用的Python 函数,通常说来可使用PyObject_GetAttrString()得到,pargs是函数的参数列表,一般是使用Py_BuildValue()来构建。

相关文章
相关标签/搜索