在Ubuntu中,你可以使用C++和Python進行混合編程
Cython是一個Python編程語言的擴展,它增加了對C和C++語言特性的支持。你可以使用Cython將C++代碼編譯成Python模塊,然后在Python代碼中調用這些模塊。
首先,安裝Cython:
pip install cython
接下來,創建一個名為hello.cpp
的C++文件:
#include<iostream>
void hello() {
std::cout << "Hello from C++!"<< std::endl;
}
然后,創建一個名為hello.pyx
的Cython文件:
cdef extern from "hello.cpp":
void hello()
def say_hello():
hello()
現在,創建一個名為setup.py
的Python設置文件:
from setuptools import setup
from Cython.Build import cythonize
setup(
ext_modules=cythonize("hello.pyx")
)
最后,運行以下命令以構建和安裝Cython模塊:
python setup.py build_ext --inplace
現在,你可以在Python代碼中導入并使用這個模塊:
import hello
hello.say_hello()
ctypes是Python的一個標準庫,允許你在Python中調用C/C++共享庫(例如.so文件)。首先,創建一個名為hello.cpp
的C++文件:
#include<iostream>
extern "C" void hello() {
std::cout << "Hello from C++!"<< std::endl;
}
然后,使用g++編譯器將其編譯為共享庫:
g++ -shared -o libhello.so hello.cpp
現在,你可以在Python代碼中使用ctypes調用這個共享庫:
import ctypes
lib = ctypes.CDLL('./libhello.so')
lib.hello()
這兩種方法都可以實現在Ubuntu中使用C++和Python進行混合編程。選擇哪種方法取決于你的需求和項目的復雜性。