linux c 调用 python
- /*
- *gcc -o callpy callpy.cpp -I/usr/include/python3.5 -lpython3.5m
- */
- #include <Python.h>
- #include<stdio.h>
- int main(int argc, char** argv)
- {
- // 初始化Python
- //在使用Python系统前,必须使用Py_Initialize对其
- //进行初始化。它会载入Python的内建模块并添加系统路
- //径到模块搜索路径中。这个函数没有返回值,检查系统
- //是否初始化成功需要使用Py_IsInitialized。
- Py_Initialize();
- // 检查初始化是否成功
- if ( !Py_IsInitialized() ) {
- return -;
- }
- // 添加当前路径
- //把输入的字符串作为Python代码直接运行,返回0
- //表示成功,-1表示有错。大多时候错误都是因为字符串
- //中有语法错误。
- PyRun_SimpleString("import sys");
- // PyRun_SimpleString("print '---import sys---'");
- PyRun_SimpleString("sys.path.append('./')");
- PyObject *pName,*pModule,*pDict,*pFunc,*pArgs,*pvalue;
- // 载入名为pytest的脚本
- //pName = PyString_FromString("rege");
- pName = PyUnicode_FromFormat("rege");
- pModule = PyImport_Import(pName);
- if ( !pModule ) {
- printf("can't find rege.py");
- getchar();
- return -;
- }
- pDict = PyModule_GetDict(pModule);
- if ( !pDict ) {
- return -;
- }
- // 找出函数名为add的函数
- printf("----------------------\n");
- pFunc = PyDict_GetItemString(pDict, "add");
- if ( !pFunc || !PyCallable_Check(pFunc) ) {
- printf("can't find function [add]");
- getchar();
- return -;
- }
- // 参数进栈
- *pArgs;
- pArgs = PyTuple_New();
- // PyObject* Py_BuildValue(char *format, ...)
- // 把C++的变量转换成一个Python对象。当需要从
- // C++传递变量到Python时,就会使用这个函数。此函数
- // 有点类似C的printf,但格式不同。常用的格式有
- // s 表示字符串,
- // i 表示整型变量,
- // f 表示浮点数,
- // O 表示一个Python对象。
- // 调用Python函数
- pvalue= PyObject_CallObject(pFunc, pArgs);
- //下面这段是查找函数foo 并执行foo
- Py_DECREF(pName);
- Py_DECREF(pArgs);
- Py_DECREF(pModule);
- // 关闭Python
- Py_Finalize();
- return ;
- }
linux c 调用 python的更多相关文章
- python - Linux C调用Python 函数
1.Python脚本,名称为py_add.py def add(a=,b=): print('Function of python called!') print('a = ',a) print('b ...
- linux+php+apache web调用python脚本权限问题解决方案
lamp : linux + apache + mysql + php 在上篇随笔中linux+php+apache调用python脚本时出现的问题的根本原因是:apache运行时使用的apache用 ...
- linux+php+apache web调用python脚本权限问题
lamp : linux + apache + mysql + php 在近期项目中使用 linux + apache + php调用python脚本是出现以下权限问题: build/bdist.li ...
- 中标麒麟(linux)下Qt调用python
转自:https://blog.csdn.net/lwlgzy/article/details/83857297 http://www.cnblogs.com/jiaping/p/6321859.ht ...
- [Python]linux自己定义Python脚本命令
在window下写好的程序配置到Linux上,要实现随意文件夹下的命令调用. 因为初学Linux,这里从文件传输等最主要的方法入手,记录配置的过程中遇到的各种问题. 连接远端server 这里使用pu ...
- linux下安装python linux下一些常用的命令
注意 ubuntukylin-14.04.2-desktop-amd64 自带python2.7.6 这个说的比较详细 http://wenku.baidu.com/link?url=gaeFcQrc ...
- R 调用 python
上一篇说了python使用 rpy2 调用 R,这里介绍R如何调用python.R的强项在于统计方面,尤其是专业的统计分析,统计检验以及作图功能十分强大,但是在通用性方面,就远不如Python了,比如 ...
- java调用python的惨痛史(无法获取环境变量)
环境:java,was,python2.6,红帽linux,oracle,python用cx_Oracle 事情是这样的,有个需求,需要对数据库进行处理,简单说就是把数据取出来,用pyt ...
- Linux下升级Python到3.5.2版本
原文出处:https://www.cnblogs.com/tssc/p/7762998.html 本文主要介绍在Linux(CentOS)下将Python的版本升级为3.5.2的方法 众所周知,在20 ...
随机推荐
- TP多条件查询实例
where条件查询,时间范围查询 $condition = [ ['member_id', '=', $member_id] ]; if($type) { $condition[] = ['type' ...
- SDN(Software Defined Network):软件定义网络----转载
SDN(Software Defined Network):软件定义网络 传统的网络转发行为: 1)逐设备单独控制,纯分布式控制. 2)控制面和转发面在同一个设备中,耦合紧密. 管理员无法直接操控转发 ...
- SASS - 函数
SASS – 简介 SASS – 环境搭建 SASS – 使用Sass程序 SASS – 语法 SASS – 变量 SASS- 局部文件(Partial) SASS – 混合(Mixin) SASS ...
- vue移动端点击一个元素缩小,松手的时候元素恢复正常
active伪类解决 HTML代码 <div class='box'> </div> CSS代码 .box { width: 100px; height: 100px; bac ...
- 启动运行python3时 UnicodeDecodeError: 'gbk' codec can't decode byte 0xa2 in position 170: illegal multibyte sequence
重现 在cmd中输入Python,运行后,出现以下错误: Python 3.7.3 (default, Mar 27 2019, 17:13:21) [MSC v.1915 64 bit (AMD64 ...
- HashMap核心功能源码浅析
1.引子 "HashMap"由“hash”和“map"两个单词组成,这里的”map"表示“映射”而不是“地图”的意思,两个单词连起来就是“哈希映射表”.Map是 ...
- cf1208 E Let Them Slide(差分+RMQ\单调队列)
题意 如题目的图所示,每行都可以左右移动,但是数字不允许断开,且不许越界(宽度为w). 单独求每一列的最大的和为多少. 思路 对于每一列来说,在每一行上都有一个可以取到的区间, 所以,对于一列来说,答 ...
- POJ - 3661 Running(dp---背包)
题意:Bessie要运动N分钟,已知每一分钟可以跑的距离,每一分钟可选择跑或者不跑,若选择跑,疲劳度加1,但疲劳度不能超过M:若选择不跑,则每过一分钟,疲劳度减1,且只有当疲劳度减为0时可以继续跑.求 ...
- 吴裕雄--天生自然 JAVASCRIPT开发学习: 闭包
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 寒假day08
今天爬了部分与人才动态相关的数据,还刷了剑指offer的部分算法题