Windows平台进行C++ 调用 python大全

 因业务需要进行c++调用python

基本流程:

建立project,分别编写cpp、py文件。

在project里边进行属性设置(三个)建立 c++与python联系:

①属性->c/c++常规->附加包含目录 里面加上自己的python下的include路径。

②属性-> 链接器->输入->附加依赖项 中添加python37.lib。然后配置此lib文件的路径,可以将python37.lib直接复制到工程中去,也可以直接添加系统中python37.lib的绝对路径。

③属性->VC++目录->包含目录->python安装目录下得include

   属性->VC++目录->库目录->python安装目录下得libs

三个注意点

①确认已安装python (32位还是64位)对应VS编译时选择x86还是x64,否则会报错无法解析外部符号(python类)。

 ②python是否安装debug插件,否则会报错。

解决办法是要么安装python debug binaries,要么vs采用release进行编译。

 ③ 如果将py文件和cpp文件放在同一文件夹,注意py文件要和cpp一个目录层级,否则会找不到导入的python文件模块。

使用如下命令导入py文件:

    PyRun_SimpleString("import sys");

    PyRun_SimpleString("sys.path.append('./')"); //放在cpp的同一路径下

若目录不同,则导入

PyRun_SimpleString("sys.path.append('./')"); // ' '导入实际绝对路径

补充文件路径盲区:

绝对路径:

Linux和MacOS下的绝对路径和Windows系统不同,主要区别如下:

  • 根文件夹不同,Windows的根文件夹是盘符,如D:\C:\;而在Linux和MacOS中,根文件夹是/,你可以理解为所有的文件都在一个盘下,自然不需要用CD这样的字符去区分了。
  • 分隔符不同,在Windows 上,路径书写使用倒斜杠\作为文件夹之间的分隔符。但在MacOS和Linux上,使用正斜杠/作为它们的路径分隔符。
  • 大小写区分不同,文件夹名称和文件名在Windows和MacOS上是不区分大小写的,但在Linux上是区分大小写的。

相对路径是指以当前工作目录为参照基础,链接到目标文件资源(或文件夹)的路径。

相对路径的表示符号如下:

以./开头,代表当前目录和文件目录在同一个目录里,./也可以省略不写;
以../开头:向上走一级,代表目标文件在当前文件所在的上一级目录;
以../../开头:向上走两级,代表父级的父级目录,也就是上上级目录,再说明白点,就是上一级目录的上一级目录;
以/开头,代表根目录。

Python表示文件路径
在Python中,一般使用字符串存储文件路径。但需要注意的是,字符反斜杠\在Python中表示转义字符。因此,在表示Windows系统下的文件路径(Windows系统的分隔符是\)时需注意以下要点:

以路径D:\files\data\ndvi.tif为例;
在字符串前加个字符r,表示该字符串为原始字符串,会完全忽略所有的转义字符。例如,r"D:\files\data\ndvi.tif";
对转义字符进行转义,例如,"D:\\files\\data\\ndvi.tif";
将分隔符替换为/,在Windows系统下,将分隔符替换为/Python也能正确识别。例如,"D:/files/data/ndvi.tif"。
Linux和MacOS下,直接将路径放到单引号或者双引号里就行。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值