商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > ubuntu如何用gcc编译Python扩展模块

ubuntu如何用gcc编译Python扩展模块

  发布于2026-07-27 阅读(0)

扫一扫,手机访问

在Ubuntu上,用gcc编译Python扩展模块这件事,其实没有想象中那么复杂。只要按部就班走完几个关键步骤,就能让C代码和Python无缝对接起来。下面就把整个过程拆开来讲。

ubuntu如何用gcc编译Python扩展模块

第一步,先把基础工具补齐。你需要Python的开发头文件和gcc编译器,这两样缺一不可。打开终端,直接跑两行命令:

sudo apt update
sudo apt install python3-dev gcc

如果你还在用Python 2(坦白说,已经停止维护,不推荐这么做),那就换成python-dev。装好之后,环境就算搭起来了。

第二步,写代码。创建一个.c文件,比如examplemodule.c,把你要实现的C函数放进去。至于具体怎么写一个Python可调用的C扩展,那是另一门功课,这里先按下不表。

第三步,准备一个setup.py脚本。这个文件是告诉setuptools该怎么编译你的模块。内容很简单:

from setuptools import setup, Extension

module = Extension('examplemodule', sources=['examplemodule.c'])

setup(name='ExampleModule',
      version='1.0',
      description='This is an example Python extension module',
      ext_modules=[module])

这里examplemodule就是模块名,sources列表里放所有源文件。如果有多个.c文件,一并列进去就行。

第四步,编译。在终端里进入setup.py所在的目录,执行:

python3 setup.py build

系统会自动调用gcc完成编译,并在build目录下生成一个.so共享库文件——这就是你最终要用的扩展模块。

第五步,安装到系统环境(可选)。如果想让所有Python程序都能直接调用这个模块,可以运行:

sudo python3 setup.py install

它会把这个.so文件复制到Python的site-packages目录里。不过,如果你只是临时测试,直接用build目录下的文件也行,只要把路径加到sys.path里就成。

第六步,验收。打开Python解释器,试试导入模块并调用函数:

import examplemodule
examplemodule.some_function()

如果没报错,恭喜你,扩展模块已经跑起来了。

有一点需要特别提醒:如果你的扩展模块依赖外部库,比如数学库或者某个第三方库,那必须在Extension里指定这些库的链接参数。例如:

module = Extension('examplemodule',
                   sources=['examplemodule.c'],
                   libraries=['some_library'],
                   library_dirs=['/path/to/library'])

同时,确保你有权限访问这些库的头文件和库文件,编译时路径也要写对,否则gcc会毫不留情地甩你一脸错误。

本文转载于:https://www.yisu.com/ask/71195957.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注