如何在windows下成功的编译和安装python组件hyperscan

如何在windows下成功的编译和安装python组件hyperscan什么是Hyperscan:hyperscan 是英特尔推出的一款高性能正则表达式引擎,一次接口调用可以实现多条规则与多个对象之间的匹配,可以支持

欢迎大家来到IT世界,在知识的湖畔探索吧!

什么是Hyperscan:

hyperscan 是英特尔推出的一款高性能正则表达式引擎,一次接口调用可以实现多条规则与多个对象之间的匹配,可以支持多种匹配模式,块模式和流模式,它是以PCRE为原型开发,并以BSD许可证开源。

使用时分2步来实现:

  • 第1步:对规则集进行预编译,编译时可以指定规则集类型的参数:正则表达式或文本模式。
  • 第2步:利用编译好的规则集进行匹配,匹配时可以指定为块模式或流模式。
  • 另外需要注意的是x86版本和arm版本的源代码是有区别的,官网下载x86版本(github.com/intel/hyper…)无法在arm平台中编译通过,arm版本下载地址(github.com/tqltech/hyp…)。

下面以在windows X86平台为例来讲解hyperscan python组件的编译安装方法:

1、 下载和解压hyperscan-5.4.0。

2、 在powershell下创建build目录,执行cd build。

3、 输入cmake -G命令,查看-G支持的类型列表。

如何在windows下成功的编译和安装python组件hyperscan

4、 输入cmake -G “Visual Studio 15 2017 Win64” -DBUILD_SHARED_LIBS=on …/命令。

如何在windows下成功的编译和安装python组件hyperscan

  • 提示命令执行失败,需要指定BOOST_ROOT参数

5、 下载boost源代码,解压到hyperscan目录中。

如何在windows下成功的编译和安装python组件hyperscan

6、 输入cmake -G “Visual Studio 15 2017 Win64” -D BOOST_ROOT=%cd%/…/boost_1_78_0/ -DBUILD_SHARED_LIBS=on …/命令。

如何在windows下成功的编译和安装python组件hyperscan

  • 提示缺少PCRE和sqlite3

7、 下载PCRE、sqlite源代码并解压到hyperscan目录中。

如何在windows下成功的编译和安装python组件hyperscan

8、 输入cmake -G “Visual Studio 15 2017 Win64” -D BOOST_ROOT=%cd%/…/boost_1_78_0/ -DBUILD_SHARED_LIBS=on -D PCRE_SOURCE=%cd%/…/pcre-8.45/ …/命令,命令执行成功,build目录下生成一系列的vs2017工程文件。

如何在windows下成功的编译和安装python组件hyperscan

9、 输入cmake –build .命令执行编译,编译成功后分别在bin、lib目录下生成一系列文件。

如何在windows下成功的编译和安装python组件hyperscan

  • bin目录列表
如何在windows下成功的编译和安装python组件hyperscan

  • lib目录列表

10、 下载hyperscan python源代码(pypi.org/project/hyp…) ,原来的setup.py无法在windows下安装成功,需要修改setup.py文件内容如下:

# -*- coding: utf-8 -*-
from distutils.core import *

module1 = Extension("hyperscan.hyperscan", 
                   include_dirs = ['src/hyperscan'],
                   libraries = ['hs', 'hs_runtime'],
                    library_dirs  = [r'../hyperscan-5.4.0/build/lib'],
                extra_compile_args = ['/Zi', '/Od'],
                   extra_link_args = ['/DEBUG'],
                   sources = ["src/hyperscan/hyperscanmodule.c"])

setup(
    name="hyperscan", #打包文件名称 库说明文件的文件名
    version="0.2.0", 
    package_dir = {'': 'src'},
    packages = ['hyperscan'],
    package_data = {'': ['*']},
    ext_modules=[module1]
)
复制代码

欢迎大家来到IT世界,在知识的湖畔探索吧!

11、 输入python setup.py install命令进行python组件安装,提示安装失败,找不到hs_compile_lit_multi。

12、 在hs.def中增加导出函数hs_compile_lit_multi,重新编译hyperscan工程后再执行python组件安装脚本,安装成功。

13、 成功执行python测试。脚本表示安装成功,脚本如下:

欢迎大家来到IT世界,在知识的湖畔探索吧!import hyperscan
db = hyperscan.Database()
print(db)
复制代码
如何在windows下成功的编译和安装python组件hyperscan

  • 执行成功

可以试试下面的漏扫服务,看看系统是否存在安全风险

作者:华为云开发者社区
链接:https://juejin.cn/post/7072182814333992967
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/40422.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信