当前位置: 首页 > news >正文

有哪些网站可以做外贸惠州关键词排名提升

有哪些网站可以做外贸,惠州关键词排名提升,网站制作需要多长时间,南阳seo优化目录 1.直接调用python语句 头文件引用 2.调用无参有参函数 1、调用无参函数 1.建立nopara.py文件 2.使用c语言根据上面流程进行调用 2、调用有参函数 1.建立nopara.py文件 2.使用c语言根据上面流程进行调用 C语言调用python需要我们已经安装好了libpython3的 dev依赖…

目录

1.直接调用python语句

头文件引用 

2.调用无参有参函数

1、调用无参函数

1.建立nopara.py文件

 2.使用c语言根据上面流程进行调用

2、调用有参函数 

1.建立nopara.py文件

 2.使用c语言根据上面流程进行调用


C语言调用python需要我们已经安装好了libpython3 dev依赖库,如果还没安装的可以看我之前的文档搭建python编译环境-CSDN博客

1.直接调用python语句

  • 头文件Python.h,这是Python API的头文件,用于访问Python对象和函数
  • Py_Initialize();函数初始化Python解释器
  • PyRun_SimpleString();函数可以执行一段简单的Python代码,例如打印"funny"。需要传递一个字 符串作为参数,表示要执行的Python代码,print ('funny')这么一个Python代码字符串。
  • Py_Finalize()函数关闭Python解释器,并释放资源。
#include "Python.h"
int main()
{Py_Initialize(); // 初始化PyRun_SimpleString("print ('happy')");Py_Finalize(); //释放资源
}

运行这个程序我们要使用以下命令进行编译(我的python版本是Python 3.10) 

gcc simpledemo.c -o simpledemo -I /usr/include/python3.10 -lpython3.10//编译
./simpledemo//运行

头文件引用 

/usr/include :Linux系统编程往往需要引用c头文件,linux下,头文件一般存储到/usr/include 

若头文件在此文件夹内,相对路径直接引入即可

#include<stdio.h>
#include<netient/ip.h>

若在其他文件夹,gcc编译需要声明-I指定路径 

gcc -I /usr/xxx/include yyy.c

 运行结果

2.调用无参有参函数

关于sys.path的用法及介绍可以看这篇博文

sys.path用法介绍-CSDN博客

1、调用无参函数

  1. 包含Python.h头文件,以便使用Python API
  2. 使用void Py_Initialize()初始化Python解释器,
  3. 使用PyObject *PyImport_ImportModule(const char *name)PyObject *PyObject_GetAttrString(PyObject *o, const char *attr_name)获取sys.path对象,并利用 int PyList_Append(PyObject *list, PyObject *item)将当前路径.添加到sys.path中,以便加载当前的Python模块(Python文件即python模块) 
  4. 使用PyObject *PyImport_ImportModule(const char *name)函数导入Python模块,并检查是否有错误。
  5. 使用PyObject *PyObject_GetAttrString(PyObject *o, const char *attr_name)函数获取 Python函数对象,并检查是否可调用。
  6. 使用PyObject *PyObject_CallObject(PyObject *callable, PyObject *args)函数调用 Python函数,并获取返回值。
  7. 使用void Py_DECREF(PyObject *o)函数释放所有引用的Python对象。
  8. 结束时调用void Py_Finalize()函数关闭Python解释器。

第三步可以改成这两句获取sys.path对象和添加当前路径到sys.path中

    PyRun_SimpleString("import sys");

    PyRun_SimpleString("sys.path.append('./')");

1.建立nopara.py文件
#nopara.py文件
def say_funny():print('funny')
 2.使用c语言根据上面流程进行调用
#include <Python.h>int main(){Py_Initialize();//初始化python解释器,他会加载我们python的编译环境PyObject *pyob = PyImport_ImportModule("sys");//获取sys模块PyObject *list = PyObject_GetAttrString(pyob,"path");//获取sys.path对象PyList_Append(list,PyUnicode_FromString("."));//将当前路径添加到sys.path中PyObject *mode = PyImport_ImportModule("nopara");//导入python模块,就是导入要执行的python文件if(!mode){PyErr_Print();printf("ERROR:mode not!\n");}PyObject *pFunc = PyObject_GetAttrString(mode,"say_funny");if(!pFunc|| !PyCallable_Check(pFunc)){PyErr_Print();printf("ERROR:pFunc not!\n");}PyObject *pValue = PyObject_CallObject(pFunc,NULL);if(!pValue){PyErr_Print();printf("ERROR:pValue not!\n");}Py_DECREF(pValue);Py_DECREF(pFunc);Py_DECREF(mode);Py_Finalize();return 0;
}

2、调用有参函数 

其实调用有参函数与无参函数的区别只在我们有没有传参,如果有返回值我们就需要获取返回值

  1. 包含Python.h头文件,以便使用Python API
  2. 使用void Py_Initialize()初始化Python解释器,
  3. 使用PyObject *PyImport_ImportModule(const char *name)PyObject *PyObject_GetAttrString(PyObject *o, const char *attr_name)获取sys.path对象,并利用 int PyList_Append(PyObject *list, PyObject *item)将当前路径.添加到sys.path中,以便加载 当前的Python模块(Python文件即python模块)
  4. 使用PyObject *PyImport_ImportModule(const char *name)函数导入Python模块,并检查是否有错误。
  5. 使用PyObject *PyObject_GetAttrString(PyObject *o, const char *attr_name)函数获取 Python函数对象,并检查是否可调用。
  6. 使用PyObject *Py_BuildValue(const char *format, ...)函数将C类型的数据结构转换成 Python对象,作为Python函数的参数,没有参数不需要调用
  7. 使用PyObject *PyObject_CallObject(PyObject *callable, PyObject *args)函数调用 Python函数,并获取返回值。
  8. 使用int PyArg_Parse(PyObject *args, const char *format, ...)函数将返回值转换为C类 型,并检查是否有错误,没有返回值时不需要调用。
  9. 使用void Py_DECREF(PyObject *o)函数释放所有引用的Python对象。
  10. 结束时调用void Py_Finalize()函数关闭Python解释器。

第三步也可以自行更改

1.建立nopara.py文件
#nopara.py文件
def say_funny(category):print(category)return category
 2.使用c语言根据上面流程进行调用
int main(){Py_Initialize();//初始化python解释器,他会加载我们python的编译环境// PyObject *pyob = PyImport_ImportModule("sys");//获取sys模块// PyObject *list = PyObject_GetAttrString(pyob,"path");//获取sys.path对象// PyList_Append(list,PyUnicode_FromString("."));//将当前路径添加到sys.path中PyRun_SimpleString("import sys");PyRun_SimpleString("sys.path.append('./')");PyObject *mode = PyImport_ImportModule("nopara");//导入python模块,就是导入要执行的python文件if(!mode){PyErr_Print();printf("ERROR:mode not!\n");}//获取python函数对象,并检查是否可被调用PyObject *pFunc = PyObject_GetAttrString(mode,"say_funny");if(!pFunc|| !PyCallable_Check(pFunc)){PyErr_Print();printf("ERROR:pFunc not!\n");}char *p = "happy day!!!";PyObject* pArgs = Py_BuildValue("(s)",p);//调用python函数,并获取其返回值,就是执行那个函数PyObject *pValue = PyObject_CallObject(pFunc,pArgs);if(!pValue){PyErr_Print();printf("ERROR:pValue not!\n");}char *result = NULL;if (!PyArg_Parse(pValue, "s", &result)){PyErr_Print();printf("Error: parse failed\n");}printf("c=%s\n",result);//释放所有引用的python对象Py_DECREF(pValue);Py_DECREF(pFunc);Py_DECREF(mode);//关闭python解释器Py_Finalize();return 0;
}

 使用以下代码进行编译运行

 gcc -o pymode02_2 pymode02.c -I /usr/include/python3.10/ -lpython3.10sudo ./pymode02_2 

运行结果 

http://www.mmbaike.com/news/83877.html

相关文章:

  • 网页制作过程及步骤公司网站优化方案
  • 商城型网站建设代理加盟天眼查企业查询
  • 淘宝客网站做一种还是做好几种搜索引擎营销有哪些
  • wordpress翻页按钮颜色seochan是什么意思
  • 国外 设计 网站深圳网站建设专业乐云seo
  • wordpress 关联湖南网站营销seo多少费用
  • 自己的网站怎么做关键词东莞专业网站推广工具
  • 江苏荣邦建设有限公司网站app拉新推广怎么做
  • wordpress 时间格式优化排名案例
  • 北京学会网站建设网站排名查询工具有哪些
  • 网站案例展示怎么做友情链接交换平台免费
  • 南通网站建设方案微信营销的方法7种
  • 如何注册一个设计网站宁波网站推广联系方式
  • 重庆南岸营销型网站建设公司推荐电商运营助理
  • 重庆微信网站建设价格seo工具大全
  • 上海网站建设学校与管理中专合肥网络公司seo建站
  • 国外做旅游攻略的网站最新消息新闻
  • 做网站北京个人博客网站设计毕业论文
  • 网站的测试和网站上线尚硅谷培训机构官网
  • wordpress赞百度网站排名优化软件
  • 河南网站seo地址关键词爱站网
  • 通州做网站公司广告平台有哪些
  • 泰安求职招聘网seo优化快速排名
  • 酷家乐设计师接单平台优化大师官方正版下载
  • 网站布局类型网络口碑营销案例
  • 学生作业 制作一个网站国外免费网站域名服务器查询
  • 手机网站适合分开做关键词排名怎样
  • 织梦制作手机网站模板软件定制开发
  • 阿里云ecs部署网站页面设计漂亮的网站
  • 网站架构策划书新东方烹饪培训学校