发布于2026-07-27 阅读(0)
扫一扫,手机访问
在Ubuntu上,用gcc编译Python扩展模块这件事,其实没有想象中那么复杂。只要按部就班走完几个关键步骤,就能让C代码和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会毫不留情地甩你一脸错误。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8