将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
相关推荐
序属秋秋秋16 小时前
《Linux系统编程之进程基础》【进程优先级】
linux·运维·c语言·c++·笔记·进程·优先级
草莓熊Lotso16 小时前
C++ STL map 系列全方位解析:从基础使用到实战进阶
java·开发语言·c++·人工智能·经验分享·网络协议·everything
_F_y16 小时前
C++IO流
c++
草莓熊Lotso16 小时前
《算法闯关指南:优选算法--模拟》--41.Z 字形变换,42.外观数列
开发语言·c++·算法
zhjadsf16 小时前
Huggingface_hub源码解析 - 简介篇
python·huggingface
20岁30年经验的码农16 小时前
Python语言基础文档
开发语言·python
清静诗意17 小时前
独立 IoT 客户端绕过 Django 生命周期导致数据库断链:诊断与修复
python·mysql·django·生命周期
不知更鸟20 小时前
Django 项目设置流程
后端·python·django
自动化代码美学21 小时前
【Python3.13】官网学习之控制流
开发语言·windows·python·学习
AA陈超1 天前
ASC学习笔记0020:用于定义角色或Actor的默认属性值
c++·笔记·学习·ue5·虚幻引擎