网络上有很多关于C/C++调用Python脚本的教程都是基于python2的,而很多接口在python3中已经取消,本文就针对python3做一个简单的总结。
c++调用python脚本主要有两种方式:
使用官方提供的Api(很有趣的一点是:执行过一次的python脚本,会被编译成pyc文件保存起来,这样可以加速之后再次执行的效率。)
使用Cython
下面根据实际使用的代码将第一种方法,使用官方api进行一些详细的讲解。
- 需求:实现MySQL的增删改查功能,因为用c++的接口去写相对比较复杂,实际上最后还是转换成了SQL的语句,同时返回的也是字符串,所有想将这部分代码改成简洁明了的Python去实现。
- 基本模块:python调用MySQL的模块:MySQLdb(python3),
C++头文件Python.h 动态库 libpython3.5m.so(这里根据实际安装的版本)
这里附加一个简单的python对数据库进行新增table的脚本:mysql_test.py;
import MySQLdb
conn = MySQLdb.connect(
host='localhost',
port=3306,
user='root',
passwd='root',
db='root_database',
)
# s就是SQL语句 如本例中的创建一个table: "create table test_table(id int, name varchar(20), class varchar(30), age varchar(10))"
def addTable(s):
cur = conn.cursor()
cur.execute(s)
cur.close()
conn.commit()
conn.close()
# 因为在C++代码中,我使用了通用的解析接口: