C++调用Python_____用Python C API
项目需要用C++来处理用python处理的数据集,所以就需要在C++中调用python。
先介绍第一种方法,python文档中给出了python c api,可以实现C++与python的互动。
先新建一个C++ Project,名字叫CallPythonFunction,在项目->属性->VC++目录,包含目录添加你自己的python的inclue文件夹路径,
在库目录添加python的libs目录,如下(记得查看自己的python安装目录)
此时去你的python安装目录下面,找到libs文件夹,可以看到里面会有好几个lib文件,都是以python+版本号.lib形式命名,python39.lib是给release使用,python39_d.lib是给debug版本使用。这个需要根据你的项目需要release还是debug版本来决定,以debug为例,找到项目->属性->链接器->输入->附加依赖项,添加python39_d.lib完整路径
此时项目属性配置已经完成,用一个demo来test一下
先编辑python文件,名字:mytest.py,定义了hello函数
# -*- coding: utf-8 -*-
def hello():
print("Hello c++, I'm python!")
再编辑调用python的C++文件,在项目的源文件处中添加main.cpp文件,内容如下
#include <iostream>
#include <python.h>
using namespace std;
void hello()
{
Py_Initialize();
if (!Py_IsInitialized())
{
cout << "Python initialization fails " << endl;
return ;
}
PyObject* pModule = NULL;
PyObject* pFunc = NULL;
pModule = PyImport_ImportModule("mytest"); // 调用的文件名
pFunc = PyObject_GetAttrString(pModule, "hello"); //调用的函数名
PyObject_CallObject(pFunc, NULL); //执行python函数
Py_Finalize();
}
即可,对于python c api如何使用这里就不介绍了,网上很多类似文章。
C++调用Python_____用Python C API的更多相关文章
- 华为云的API调用实践(python版本)
一.结论: 1.华为云是符合openstack 社区的API,所以,以社区的API为准.社区API见下面的链接. https://developer.openstack.org/api-ref/net ...
- 阿里云 API调用实践(python语言)
1.结论:阿里云的SDK开发,其实就是远程调用API,python的代码就是一个外壳,核心是封装成一个http报文,利用json格式,进行RPC调用. 2.SDK调用API的套路如下: # -*- c ...
- 用 Identity Server 4 (JWKS 端点和 RS256 算法) 来保护 Python web api
目前正在使用asp.net core 2.0 (主要是web api)做一个项目, 其中一部分功能需要使用js客户端调用python的pandas, 所以需要建立一个python 的 rest api ...
- 调用网易有道词典api
# -*- coding: utf-8 -*- #python 27 #xiaodeng #调用网易有道词典api import urllib import json class Youdao(): ...
- Python Elasticsearch api,组合过滤器,term过滤器,正则查询 ,match查询,获取最近一小时的数据
Python Elasticsearch api 描述:ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.下 ...
- 如何用 Python 和 API 收集与分析网络数据?
摘自 https://www.jianshu.com/p/d52020f0c247 本文以一款阿里云市场历史天气查询产品为例,为你逐步介绍如何用 Python 调用 API 收集.分析与可视化数据.希 ...
- 关于js调用外部部署的web api
没想到多年之后我还得继续写这些东西.... 瀑布汗~ 最近不得不开始研究用web api MVC的项目中,在js文件里,实现点击一个按钮调用外部发布好的api,再从api把值回传给js页面,跳转. 经 ...
- 如何实现Python调用C代码--python与C之间如何通信(swig)
转载: https://www.zhihu.com/question/23003213 1. C代码如何调用Python 1.1 test #include <Python.h> int ...
- java调用Linux执行Python爬虫,并将数据存储到elasticsearch--(环境脚本搭建)
java调用Linux执行Python爬虫,并将数据存储到elasticsearch中 一.以下博客代码使用的开发工具及环境如下: 1.idea: 2.jdk:1.8 3.elasticsearch: ...
- 如何调用另一个python文件中的代码
模块的搜索路径 模块的搜索路径都放在了sys.path列表中,如果缺省的sys.path中没有含有自己的模块或包的路径,可以动态的加入(sys.path.apend)即可.下面是sys.path在Wi ...
随机推荐
- C#消息泵探索(一)
消息泵 消息泵,又叫消息循环. 消息循环使用一个图形化用户界面下Microsoft Windows.具有GUI的Windows 程序是由事件驱动的.Windows为每个创建窗口的线程维护一个单独的消 ...
- java向上转型知识点收录
package tex2polymorphism; /*总结如下: * 对于多态,可以总结它为: 一.使用父类类型的引用指向子类的对象: 二.该引用只能调用父类中定义的方法和变量: 三.如果子类中重写 ...
- NetBeans的一些快捷键
Alt + Insert getter 覆盖toString方法 Shift+ F6 运行当前文件 F6 运行当前项目 Tab 完成代码片段 ctrl+\ 代码补全 Alt + Shift + F格式 ...
- 增加网络位置CMD脚本
创建.bat脚本 net use Z: \\192.168.X.X\Share /user:用户名 /persistent:YES 密码 persistent:YES是保存密码.下次开机也生效.
- Maven3.6.1 (转载大佬文章)
(30条消息) Maven3.6.1安装及配置_浅若清风过的博客-CSDN博客 1.下载https://archive.apache.org/dist/maven/maven-3/3.6.1/bina ...
- 修改系统hosts文件访问github
C:\Windows\System32\drivers\etc 199.232.69.194 github.global.ssl.fastly.net 140.82.114.4 github.com
- 简易舰c远征计时器(HTML)
有时候项目闲下来想休息的时候会跑跑舰c远征,但计时比较麻烦. 所以每个现场都会写那么几个工具.以前是vba的,这次写了个HTML的,感觉还算易用就仍上来了.省得以后换现场还得再写. 纯粹是偷懒时做的, ...
- R6-1 输入年份和天数,输出对应的年、月、日
R6-1 输入年份和天数,输出对应的年.月.日 分数 15 全屏浏览题目 切换布局 作者 张泳 单位 浙大城市学院 要求定义和调用函数month_day ( year, yeardy, *****pm ...
- 如何使用cmd(dos命令)关闭IIS中某个站点
在 目录 C:\Windows\System32\inetsrv 下面有一个 appcmd 程序,定位到 该目录下 appcmd site /? #管理站点 appcmd /? #管理整个IIS ...
- Flink Application Development DataStream API Event Time--Flink应用开发DataStream API事件时间
目录 概览 事件时间 接下来去哪儿 水印生成 水印策略简介 使用水印策略 处理空闲源 写水印生成代码 写周期WatermarkGenerator代码 写符号形式的WatermarkGenerator代 ...