在CentOS下使用GCC編譯Python擴展模塊,需要遵循以下步驟:
首先,確保已經安裝了gcc
、make
等開發工具??梢允褂靡韵旅畎惭b:
sudo yum groupinstall "Development Tools"
接下來,安裝Python開發庫和頭文件。對于Python 2.x,請使用以下命令:
sudo yum install python-devel
對于Python 3.x,請使用以下命令:
sudo yum install python3-devel
創建一個名為example.c
的文件,并編寫擴展模塊的源代碼。例如:
#include <Python.h>
static PyObject* example_hello(PyObject* self, PyObject* args) {
printf("Hello from the Python extension module!\n");
Py_RETURN_NONE;
}
static PyMethodDef ExampleMethods[] = {
{"hello", example_hello, METH_VARARGS, "Prints a hello message."},
{NULL, NULL, 0, NULL}
};
static struct PyModuleDef examplemodule = {
PyModuleDef_HEAD_INIT,
"example",
NULL,
-1,
ExampleMethods
};
PyMODINIT_FUNC PyInit_example(void) {
return PyModule_Create(&examplemodule);
}
setup.py
文件:創建一個名為setup.py
的文件,用于編譯擴展模塊。在該文件中,需要指定擴展模塊的名稱、源文件等信息。例如:
from distutils.core import setup, Extension
example_module = Extension('example', sources=['example.c'])
setup(name='ExampleModule',
version='1.0',
description='This is a simple example module',
ext_modules=[example_module])
在終端中,導航到包含setup.py
文件的目錄,然后運行以下命令:
對于Python 2.x:
python setup.py build
對于Python 3.x:
python3 setup.py build
這將在build
目錄下生成一個名為example.so
的共享庫文件。
要將擴展模塊安裝到系統中,可以運行以下命令:
對于Python 2.x:
sudo python setup.py install
對于Python 3.x:
sudo python3 setup.py install
安裝完成后,可以在Python腳本中導入并使用擴展模塊:
import example
example.hello()
這將輸出:
Hello from the Python extension module!