1、util.c代码如下:
#include<stdio.h>
void display(char* msg){
printf("%s\n",msg);
}
int add(int a,int b){
return a+b;
}
2、编译c代码,最后生成Python可执行的.so文件
(1)gcc -c util.c,将生成一个util.o文件
(2)gcc -shared util.c -o util.so,将生成一个util.so文件
3、在Python中调用
test.py代码如下:
#!/usr/bin/python
from ctypes import *
import os
//参数为生成的.so文件所在的绝对路径
libtest = cdll.LoadLibrary(os.getcwd() + '/util.so')
//直接用方法名进行调用
print libtest.display('Hello,I am Dream')
print libtest.add(11,100)
4、运行
5、结果截图

- 大小: 3.6 KB

- 大小: 11.4 KB

- 大小: 1.9 KB
分享到:
相关推荐
在Linux环境下,使用Python调用海康威视(Hikvision)的SDK包是一个常见的任务,这主要涉及到视频监控系统的远程访问和控制。海康威视作为全球领先的安防产品及解决方案提供商,提供了丰富的SDK供开发者集成到自己的...
在Linux环境下,Python作为一种强大的脚本语言,常常需要与C或C++等底层语言交互以提升性能或利用现有的C/C++库。本案例提供了解决这一需求的四种不同方法,适用于那些希望在Python中调用C或C++代码的开发者。下面...
为了结合两者的优点,Python提供了调用C语言函数的能力。这篇文章将详细介绍如何在Python中调用C语言编写的函数。 首先,我们需要在C语言中编写一个函数。例如,创建一个名为`hello.c`的文件,包含以下内容: ```c...
### Python调用C语言函数实例详解 在编程领域中,Python因其简洁易读的语法、强大的第三方库支持以及跨平台特性而备受青睐。然而,在处理性能密集型任务时,C语言由于其对底层硬件的直接控制能力而展现出无可比拟的...
在IT行业中,Linux系统常被用作服务器操作系统,而Python是一种强大的编程语言,广泛应用于自动化、数据处理和接口开发等领域。在与SAP系统交互时,我们常常需要通过编程方式来调用SAP的RFC(远程功能调用)接口。这...
实验报告涉及了Linux系统安装与使用基础、Python程序运行方式和程序流程控制、Python函数以及Python面向对象程序设计四个主题。下面将详细阐述这些知识点。 一、Linux系统安装与使用基础 1. 安装Linux(CentOS 7)...
4. **C语言接口设计**:为了使Python能够调用C语言的函数,接口必须遵循Python的C API规范。这包括定义C函数,使用`extern "C"`避免C++的名称修饰,以及定义Python模块初始化函数。 5. **Python的C扩展**: - 使用...
总之,Python调用C语言动态库的能力极大地拓宽了Python的应用范围,让开发者能够充分利用底层优化的代码,提高程序的执行效率。通过学习和实践这一技术,开发者可以更好地应对性能敏感的场景,实现更多可能性。
在IT领域,跨语言编程是常见需求之一,尤其是在性能敏感的应用场景下,使用如C或C++这样的编译型语言可以显著提升程序的执行效率。然而,在开发过程中,我们往往需要利用Python这样的脚本语言来处理逻辑较为复杂、...
在Linux环境下安装Python模块时,有时会遇到各种错误,这些错误通常是由于系统缺少必要的依赖或者配置不正确导致的。在给定的文件描述中,出错内容提到了`c/_cffi_backend.c:15:17: 致命错误:ffi.h:没有那个文件或...
- CPython解释器:这是Python的默认实现,由C语言编写,负责解析和执行Python代码。 - 核心标准库:包含了Python内置的模块,如`os`, `sys`, `math`, `json`等。 - 开发头文件和库:对于开发者来说,这些是必要的,...
这样,Python程序可以调用C语言编写的函数,传递和接收C类型的参数。 下面是一个简单的示例,展示了如何使用ctypes调用C语言的函数: ```python from ctypes import * # 假设有一个C函数原型:int add(int a, int...
在Linux环境下使用Python进行数据分析时,存在一些广泛使用的第三方库,这些库能够帮助我们高效地处理各种数据运算、文件读取、数据库操作以及数据可视化等任务。以下是这些常用Python库的详细介绍。 一、文件读取...
本教程聚焦于如何在Linux环境下使用C++编写`.so`动态链接库,并通过Python进行调用,这对于初学者来说是一个很好的实践项目。`.so`文件是Linux系统中的动态链接库,它包含可被其他程序共享的函数和数据。 首先,...
在Windows下,大部分API函数使用stdcall约定,而C语言函数通常使用cdecl约定。因此,当你知道DLL函数的调用约定时,可以使用`ctypes.windll`或`ctypes.cdll`来加载DLL: - stdcall调用约定:`ctypes.windll....
4. **运行构建**:执行`python setup.py build`来编译C代码,生成`.so`(Linux/MacOS)或`.pyd`(Windows)动态链接库。 5. **安装模块**:使用`python setup.py install`将编译后的模块安装到Python的site-...
### Linux 下 Python 实现按任意键退出的实现方法 #### 背景与需求 在进行脚本开发或命令行工具编写时,我们经常会遇到需要让程序暂停等待用户输入的情况。在 Python 中,通常的做法是使用 `input()` 或 `raw_...
- 每次调用 `next()` 方法时,生成器会从上次暂停的地方继续执行,直到遇到下一个 `yield` 表达式或函数结束。 **示例**: ```python def simple_generator(): yield 'A' yield 'B' yield 'C' # 使用示例 gen = ...
由于C语言的执行效率通常高于Python,因此,对于性能敏感的部分,使用Python调用C可以显著提高程序运行速度。 10. **封装复杂逻辑**: 对于复杂的计算任务或系统级操作,C代码可以更好地管理内存和资源,从而提供...