C++调用python(VS 环境)

[TOC]

参考资料:验证Pass,其它博客都丢三落四

1、环境配置

  • IDE工具安装(VS studio为例)
  • MINGW g++64位版本安装
    • path环境配置
  • python(64位版本)环境目录

image-20220415182151759

include文件夹
里面是一些C语言代码头文件。其中将存放着供C语言调用的函数的定义。

libs文件夹
里面是一些 .lib文件。
关于存放的内容: .lib可能存着函数具体的实现,也可能是存着索引 dll中函数实现的信息。由于这里的 .lib文件相对较小,而且目录里有 dll,所以存放的内容我想是后者。

dll文件
存着函数的具体实现

2、创建项目

VS Studio 建立一个C++控制台应用

3)配置路径

include文件夹加入 :项目右键设置—>【C/C++】附加包含目录 (头文件目录):

在这里插入图片描述

libs文件夹加入:链接器–常规–附加库目录 :

在这里插入图片描述

将所有 dll拷贝到工程目录下:【其它资料都没这一步,导致花费很多时间在此问题排查上】

loading-ag-10331

4、项目运行

1
2
3
4
5
6
7
8
9
10
11
12
#include <Python.h>
int main()
{
//程序名:
Py_SetProgramName(L"TestYaksue");
//初始化
Py_Initialize();
//运行一个语句
PyRun_SimpleString("print('Hello World in Python!')\n");
Py_Finalize();
return 0;
}

问题解决:c++ 调用python,numpy报错

Conda环境

现象:

pyCharm下python可以正常运行。

c++调用python文件报错:

1
from numpy.core._multiarray_umath import ( ImportError: DLL load failed: 找

排查

​ 进入到conda环境,pip list 可以看到一个numpy,conda可以看到两个numpy,怀疑此问题

​ pip uninstal numpy, 卸载两次,才能卸载完成。

最终验证,c++调用python正常,🤡

参考资料:

QT和cmake工程中实现c++调用python具体实现,环境配置以及常见问题

VS Code配置Python开发环境(最简单的步骤教程)