将c、c++变为python

1.编写cpp文件

复制代码
#include "pycpp.h"
#include <iostream>

using namespace std;

PyCpp::PyCpp(){

}

void PyCpp::sayHello(int a){
    cout << "Hello Python, I am C++."<<a << endl;
}

2.编写头文件(声明变量)

复制代码
class PyCpp{
public:
    PyCpp();
    void sayHello(int a);
};
// 不能定义编译器生成的特殊成员函数(必须首先在类中声明)

3.编写.i文件,用于链接

复制代码
%module pycpp

%{
#include "pycpp.h"
%}

%include "pycpp.h"

4.在同级目录下放python.h(去conda的env里面找)

5.下载swig运行代码
swig -c++ -python 1/pycpp.i

生成_wrap.cxx

6.编写setup.py

复制代码
from distutils.core import setup, Extension
pycpp_module = Extension('_pycpp',
                           sources=['pycpp.cpp', 'pycpp_wrap.cxx',],
                           )
setup (name = 'pycpp',
       version = '0.1',
       author      = "NZACH",
       description = """Simple swig C\+\+/Python example.""",
       ext_modules = [pycpp_module],
       py_modules = ["pycpp"],
       )

7.运行setup.py
python setup.py build_ext --inplace

8.使用

复制代码
>>> import pycpp
>>> pycpp.PyCpp().sayHello(12)
Hello Python, I am C++.12
相关推荐
殳翰8 小时前
下服务器端开发流程及相关工具介绍(C++)
开发语言·c++
nothing&nowhere9 小时前
用 Python 做问卷数据清洗:无效样本检测与处理实战
开发语言·python·数据清洗·数据处理·问卷星·问卷星脚本·刷问卷
青瓦梦滋9 小时前
协议定制/序列化-反序列化(Linux视角)
linux·服务器·网络·c++
花酒锄作田9 小时前
如何发布自己的 Python 库到 PyPI
python
researcher-Jiang9 小时前
Design Patterns——Template Method入门到情景实战
python·设计模式·模板方法模式
山登绝顶我为峰 3(^v^)312 小时前
C/C++ 交叉编译方法
java·c语言·c++
飞猪~13 小时前
LangChain python 版本 第一集
开发语言·python·langchain
2601_9563198814 小时前
最新AI量化提效,先做可验证的小流程
人工智能·python
开飞机的舒克_15 小时前
FastAPI 实战入门:从路由、参数校验到依赖注入的后端开发指南
python·fastapi