当前位置: 首页 > news >正文

能用凡科做网站吗 靠谱吗网站推广优化技巧

能用凡科做网站吗 靠谱吗,网站推广优化技巧,seo推广方式是什么呢,百度网站 收录Pybind11 是一个轻量级的库,它提供了在 C 中无缝集成 Python 代码的能力。使用 Pybind11,你可以很容易地从 C 调用 Python 代码,反之亦然。下面我将通过一个简单的例子来展示如何在 Ubuntu 系统上使用 Pybind11 从 C 调用 Python 接口。 安装…

Pybind11 是一个轻量级的库,它提供了在 C++ 中无缝集成 Python 代码的能力。使用 Pybind11,你可以很容易地从 C++ 调用 Python 代码,反之亦然。下面我将通过一个简单的例子来展示如何在 Ubuntu 系统上使用 Pybind11 从 C++ 调用 Python 接口。

安装 Pybind11

首先,确保你的系统已经安装了 Python 和 C++ 编译器。接下来,你可以通过 pip 安装 Pybind11:

pip3 install pybind11

或者,你可以从源代码安装 Pybind11,如果你需要更高级的自定义选项(推荐):

git clone https://github.com/pybind/pybind11.git
cd pybind11
mkdir build
cd build
cmake ..
make check -j 4
sudo make install

报错!!!

解决办法: 

pip3 install pytest

安装在标准路径:

示例:C++ 调用 Python 函数

假设我们有一个 Python 脚本 add_numbers.py,它包含一个简单的函数,如下所示:

add_numbers.py

def add_numbers(a, b):return a + b

CMakeLists.txt

# 设置 CMake 的最低版本要求和项目名称
cmake_minimum_required(VERSION 3.10)
# 项目名称可以被用作变量等多种用途。
project(test)# 这行命令让 CMake 寻找 Python 3.6 版本(或更高)的库。REQUIRED 表示这个包是必需的;如果找不到,CMake 会报错。
find_package(PythonLibs 3.6 REQUIRED)
# 这行命令让 CMake 寻找 Pybind11 库。同样地,REQUIRED 表示 Pybind11 是构建此项目所必需的。
find_package(pybind11 REQUIRED )# 这个命令用于向项目添加头文件搜索路径。
# 这里,${PYTHON_INCLUDE_DIRS} 和 ${pybind11_INCLUDE_DIRS} 是由 find_package 命令找到的 Python 和 Pybind11 的头文件目录。
# 这确保了编译器可以找到所有必需的头文件。
include_directories(${PYTHON_INCLUDE_DIRS})
include_directories(${pybind11_INCLUDE_DIRS})# 这行命令定义了一个名为 test 的可执行文件,它将从 main.cpp 源文件构建而成。
add_executable(test main.cpp)# 指定了构建可执行文件 test 时需要链接的库。
# ${PYTHON_LIBRARIES} 是 find_package(PythonLibs) 命令找到的 Python 库,
# 而 pybind11::pybind11 是 Pybind11 提供的目标,用于链接 Pybind11 库。这确保了项目在链接时能找到所有必要的库。
target_link_libraries(test ${PYTHON_LIBRARIES} pybind11::pybind11)

main.cpp

// pybind11/pybind11.h:这是 Pybind11 的主要头文件,提供了大部分 Pybind11 功能。
#include <pybind11/pybind11.h>
// pybind11/embed.h:这个头文件提供了嵌入 Python 解释器到 C++ 应用中所需的功能。这意味着你可以在 C++ 程序中启动和使用 Python 解释器。
#include <pybind11/embed.h>
#include <iostream>// 创建了一个别名 py,代表 pybind11 命名空间,使得后续可以通过 py 来访问 pybind11 的各种功能。
namespace py = pybind11;
using namespace std;int main() {// 这里创建了一个 scoped_interpreter 实例。这个对象的生命周期控制着 Python 解释器的启动和关闭。// 当 guard 被创建时,Python 解释器启动;当 guard 的生命周期结束时(函数返回时),Python 解释器关闭。py::scoped_interpreter guard{};// 这几行代码导入了 Python 的 sys 模块,并使用 sys.path.append 方法添加了一个目录到 Python 的模块搜索路径中。// 这样,Pybind11 就可以找到并导入位于 /home/fairlee/Programs 目录下的 Python 脚本。py::module_ sys = py::module_::import("sys");sys.attr("path").attr("append")("/home/fairlee/Programs");// 上面的代码导入了名为 hello 的 Python 模块(假设这个模块位于之前添加到 sys.path 的目录中)。// 然后,它调用了 hello 模块中的 add_numbers 函数,传入两个参数(9 和 3.14),并将返回的结果转换为 double 类型。// 这里使用了 Pybind11 的 attr 方法来访问和调用 Python 中的属性和方法。py::module_ calc = py::module_::import("hello");auto result = calc.attr("add_numbers")(9, 3.14).cast<double>();// 最后,使用标准输出将结果打印到控制台。这里的 result 就是从 Python 函数 add_numbers 返回的结果。std::cout << "The result is: " << result << std::endl;return 0;
}

编译成功后,你可以运行生成的可执行文件。C++ 程序将调用 Python 脚本中定义的加法函数,计算并打印出 9 + 3.14 的结果。

http://www.ds6.com.cn/news/118975.html

相关文章:

  • 工作室网站设计企业网络推广的方法有哪些
  • 青岛天河小学网站建设百度指数教程
  • 教学网站系统流程图排名轻松seo 网站推广
  • 健康养生网站源码关键词查找工具
  • 巨鹿网站建设网络公司百度指数查询入口
  • ftp网站上传成功后怎么做网站设计说明
  • php儿童摄影网站源码seo研究中心南宁线下
  • 外贸哪个行业比较好做太原百度快照优化排名
  • 什么叫网站空间游戏优化是什么意思
  • 培训餐饮网站建设sem模型
  • 做网站看什么书好深圳最新消息今天
  • 做微信公众号的是哪个网站搜索引擎有哪些
  • wordpress 首页 文章图片福州seo技巧培训
  • 蓝希菏泽网站建设百度网盘电脑版官网
  • 织梦做网站如何套取别人网站的模板社区建站网站系统
  • 重庆潼南网站建设公司新产品怎样推广
  • 网站备案流程及资料品牌推广运营策划方案
  • 推广 quot 网站开发 quot重庆企业网站排名优化
  • 深圳专业做网站的公司精准营销的成功案例
  • 视频网站开发用什么服务器百度竞价排名查询网站
  • 定制旅游网站开发百度网址大全在哪里找
  • 滦南网站建设推广西安关键词seo公司
  • 哪个网站做视频赚钱seo系统源码
  • 网站广告位设计百度新闻搜索
  • 全网影视vip网站建设北京百度竞价托管
  • 怎么在网站上做404页面微商推广哪家好
  • 南宁市建设信息网站短链接生成器
  • 一个网站突然打不开廊坊seo排名优化
  • 兴文县建设工程网站百度帐号管家
  • 浙江龙泉建设局网站百度商家怎么入驻