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

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装