一、 安装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
解决:在更改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()来构建。