科技感网站模板,做企业网站联系,建设设计网站公司,wordpress插件Microsoft Visual Studio中Cpp调用Python代码
本文介绍如何在Microsoft Visual Studio中#xff0c;开发cpp项目时#xff0c;调用python代码。 文章目录 Microsoft Visual Studio中Cpp调用Python代码前言一、Cpp生成exe文件1.1 安装python环境1.2 配置Microsoft Visual Stu…Microsoft Visual Studio中Cpp调用Python代码
本文介绍如何在Microsoft Visual Studio中开发cpp项目时调用python代码。 文章目录 Microsoft Visual Studio中Cpp调用Python代码前言一、Cpp生成exe文件1.1 安装python环境1.2 配置Microsoft Visual Studio1.3 进行cpp调用python代码编写 二、生成动态链接库的情况三、QT与Python.h同时开发导致的不兼容问题 前言
在使用Microsoft Visual Studio做Cpp项目开发时有时不得不使用Python部分的代码。本文介绍在两种场景下如何调用Python代码cpp项目生成exe文件和cpp项目生成dll动态链接库文件。 一、Cpp生成exe文件
1.1 安装python环境
值得注意的是尽量不要使用Conda虚拟环境因为虚拟环境有很多文件是不齐全的。这里我们使用从python官网下载的python安装程序进行安装。 记得安装完毕后要配置系统变量环境。这样比如执行pip指令后才会更新我们新安装的环境。 我安装的是Python 3.6版本下载地址 下载完成后在弹出的安装选项中记得选择自定义路径并添加到系统变量环境中。
1.2 配置Microsoft Visual Studio
我的python安装路径是 D:\Users\ASUS\Python\Python36\libs 点击项目属性框进行如下配置 1.3 进行cpp调用python代码编写
Py_Initialize();
if (!Py_IsInitialized())
{printf(初始化失败);return;
}
Py_Finalize();二、生成动态链接库的情况
这种情况和上述第一部分的配置和代码编写方法都是一样的。 需要注意的是python的版本问题如果版本不一致的话则会报错。比如说我们的cpp代码最后生成了a.dll文件被b.exe所加载使用。如果b.exe使用的python版本是3.6其具有python3.6.dll而我们的a.dll是依赖python3.7编译的那么就会报错。
三、QT与Python.h同时开发导致的不兼容问题
QT环境下集成Python出现PyType_Slot *slots冲突问题 解决方法
typedef struct{ const char* name; int basicsize; int itemsize; unsigned int flags;#undef slots //这里取消slots宏定义PyType_Slot *slots; /* terminated by slot0. */#define slots Q_SLOTS //这里恢复slots宏定义与QT中QObjectDefs.h中一致} PyType_Spec;