Avatar ·

从Python调用C/C++:如何将原生代码集成到Python项目中?

大家好!我写Python已经两年了,但最近遇到一个让我困惑的问题。我需要加速项目中的一个计算模块。Python运行太慢(有数百万次迭代的循环),所以我决定将关键部分用C++重写。 我写了一个简单的C++函数来计算斐波那契数: ```cpp // fibonacci.cpp #include extern "C" { int fibonacci(int n) { if (n <= 1) return n; int a = 0, b = 1, temp; for (int i = 2; i <= n; ++i) { temp = a + b; a = b; b = temp; } return b; } } ``` 通过MinGW编译成DLL:`g++ -shared -o fibonacci.dll fibonacci.cpp` 现在尝试通过ctypes从Python调用它: ```python import ctypes lib = ctypes.CDLL('./fibonacci.dll') result = lib.fibonacci(10) print(result) # 输出55 — 成功了! ``` 但这是一个简单的情况。如果需要传递数组数据呢?