Windows10 pybind11安装环境配置VS2017,MinGW64编译 tcy

2024-03-20 08:58

本文主要是介绍Windows10 pybind11安装环境配置VS2017,MinGW64编译 tcy,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.1.pybind11用途:主要用于C++和python之间的相互调用是一轻量级仅标头库,语法类似Boost.Python使用编译时自动推断类型剥离了与绑定生成无关的所有内容,超越Boost.Python 简化了绑定代码
1.2.python中安装:pip install pybind11
1.3.VC中安装:1.3.1.Windows系统: Microsoft Visaul Studio 2017 x64 Anaconda3 , with python 3.8 1.3.2.Pybind11安装:pybind11是 header-only的,因此不需要编译动态链接库,直接使用即可1)下载pybind11 https://github.com/pybind/pybind11解压到C:\pybind11-master2)环境变量添加:  C:\ProgramData\Anaconda3;C:\ProgramData\Anaconda3\Library\mingw-w64\bin;C:\ProgramData\Anaconda3\Library\usr\bin;C:\ProgramData\Anaconda3\Library\bin;C:\ProgramData\Anaconda3\Scripts;C:\ProgramData\Anaconda3\Lib\site-packages;C:\ProgramData\Anaconda3\Lib\site-packages\numpy\core\include; C:\ProgramData\Anaconda3\pkgs\mkl-2020.0-166\Library\bin;C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64;C:\swigwin;C:\opencv\build\x64\vc15\bin;C:\opencv\build\x64\vc15\lib;C:\opencv\build\include;C:\opencv\build\include\opencv2;C:\pybind11-master\include;  3)windows下python环境变量设置Admin用户变量:PYTHONHOME  C:\ProgramData\Anaconda3PYTHONPATH  C:\ProgramData\Anaconda3\Lib\site-packages 
2.使用VS2017测试
2.1.使用C++编写python扩展(python调用C++)新建一个vs c++工程2.2.工程配置:1)设置编译输出类型 配置属性--常规--常规--目标文件扩展名:.pyd配置属性--常规--项目默认值-配置类型:动态库.dll2)添加include包含: 配置属性--VC++目录--常规--包含目录:C:\pybind11-master\includeC:\ProgramData\Anaconda3\include3)链接器配置:链接器-常规-附加库目录:C:\ProgramData\Anaconda3\libs链接器-输入-附加依赖项:python3.lib
2.3.C++代码编译:
方法1:VS2017

 方法2:MinGW64

    查看版本:C:\Users\Administrator>g++ --version     //8.1.0编译文件:C:\Users\Administrator\Desktop\ProjectSwigWin\testSwig>compile.bat生成文件:在当前目录下生成example.pyd;拷贝到python同级目录下
	python测试:#将example.pyd拷贝到python同级目录下C:\Fastener\Camera\test.pyC:\Fastener\Camera\example.pydimport Camera.example as eprint(e.add(10,2))#12print(e.sub(10,2))#8
文件夹结构:C:\Users\Administrator\Desktop\ProjectSwigWin\testSwig>example1.hexample1.cppexample.cppcompile.bat

文件内容: 

//example1.h#pragma onceint sub(int, int);
//example1.cpp#include "example1.h"int sub(int x, int y) { return x - y; }
	//example.cpp#include <pybind11/pybind11.h>#include "example1.h"namespace py = pybind11;int add(int i, int j) {return i + j;}PYBIND11_MODULE(example, m) {m.doc() = "pybind11 example plugin"; // optional module docstringm.def("add", &add, "A function which adds two numbers");m.def("sub", &sub, "A function which adds two numbers");}
//compile.bat::将多个C++原文件打包成动态库供python调用::后缀为pyd,模块名要与pybind11中的模块名一致PYBIND11_MODULE(模块名, m)::作者:tcyg++ ^-O3 -Wall -static -shared -std=c++17 ^-DMS_WIN64 -fPIC -I C:\pybind11-master\include ^-I C:\ProgramData\Anaconda3\include ^-L C:\ProgramData\Anaconda3\libs example1.cpp example.cpp ^-o example.pyd -lPython38

 

这篇关于Windows10 pybind11安装环境配置VS2017,MinGW64编译 tcy的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/828937

相关文章

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

RabbitMQ消息总线方式刷新配置服务全过程

《RabbitMQ消息总线方式刷新配置服务全过程》SpringCloudBus通过消息总线与MQ实现微服务配置统一刷新,结合GitWebhooks自动触发更新,避免手动重启,提升效率与可靠性,适用于配... 目录前言介绍环境准备代码示例测试验证总结前言介绍在微服务架构中,为了更方便的向微服务实例广播消息,

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用