pyinstaller打包openvino 2021.4.2

news2024/11/25 6:46:44

打包准备

1. 测试环境准备

conda create -n opinstall python=3.7 -y
conda activate opinstall

pip install openvino==2021.4.2
pip install pyinstaller

PyCharm新建openvino_install,选择虚拟环境opinstall,编写测试代码

app.py

import numpy as np
from openvino.inference_engine import IECore

if __name__ == '__main__':
    print("start")
    e = IECore()
    print("end")

2. 将openvino文件夹复制到代码同级目录下
D:\ProgramData\anaconda3\envs\opinstall\Lib\site-packages\openvino 拷贝至 F:\openvino_install

3. 修改配置
# 将运行库路径修改为同级目录下的openvino目录
打开openvino/inference_engine/_init_.py

》修改:openvino_libs = [os.path.join(os.path.dirname(__file__), "..", "..", "openvino", "libs")] 为:openvino_libs = [os.path.join(os.getcwd(),'openvino\\libs') ]

》增加python版本小于等于3.8环境配置,否则报错DLL load failed while importing ie_api: 找不到指定的模块。
if (3, 8) <= sys.version_info:
os.add_dll_directory(os.path.abspath(lib_path))
os.environ["PATH"] = os.path.abspath(lib_path) + ";" + os.environ["PATH"]
else:
os.environ["PATH"] = os.path.abspath(lib_path) + ";" + os.environ["PATH"]
》增加:
from .ie_api import *
from .constants import *

# -*- coding: utf-8 -*-
# Copyright (C) 2018-2021 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

import os
import sys

if sys.platform == 'win32':
    # Installer, yum, pip installs openvino dlls to the different directories
    # and those paths need to be visible to the openvino modules
    #
    # If you're using a custom installation of openvino,
    # add the location of openvino dlls to your system PATH.
    #
    # looking for the libs in the pip installation path by default.
    openvino_libs = [os.path.join(os.getcwd(),'openvino\\libs') ]
    # setupvars.bat script set all libs paths to OPENVINO_LIB_PATHS environment variable.
    openvino_libs_installer = os.getenv('OPENVINO_LIB_PATHS')
    if openvino_libs_installer:
        openvino_libs.extend(openvino_libs_installer.split(';'))
    for lib in openvino_libs:
        lib_path = os.path.join(os.path.dirname(__file__), lib)
        if os.path.isdir(lib_path):
            # On Windows, with Python >= 3.8, DLLs are no longer imported from the PATH.
            if (3, 8) <= sys.version_info:
                os.add_dll_directory(os.path.abspath(lib_path))
                os.environ["PATH"] = os.path.abspath(lib_path) + ";" + os.environ["PATH"]
            else:
                os.environ["PATH"] = os.path.abspath(lib_path) + ";" + os.environ["PATH"] 

from .ie_api import *
from .constants import *

__all__ = ['IENetwork', 'TensorDesc', 'IECore', 'Blob', 'PreProcessInfo', 'get_version']
__version__ = get_version()  # type: ignore

开始打包 -> dist下生成exe文件 -> 根目录下的openvino文件夹拷贝到dist

G:\openvino_install>conda activate opinstall

(opinstall) G:\openvino_install>pyinstaller --onefile --hidden-import pkgutil app.py

运行方式1:执行openvino/bin/setupvars.bat脚本去初始化环境,再运行

G:\openvino_install\dist>conda activate opinstall

(opinstall) G:\openvino_install\dist>cd C:\Program Files (x86)\Intel\openvino_2021.4.752\bin

(opinstall) G:\openvino_install\dist>C:

(opinstall) C:\Program Files (x86)\Intel\openvino_2021.4.752\bin>setupvars.bat
Python 3.7.12
[setupvars.bat] OpenVINO environment initialized

(opinstall) C:\Program Files (x86)\Intel\openvino_2021.4.752\bin>cd G:\openvino_install\dist

(opinstall) C:\Program Files (x86)\Intel\openvino_2021.4.752\bin>G: 

(opinstall) G:\openvino_install\dist>app.exe
start
end

(opinstall) G:\openvino_install\dist>

运行方式2:不使用setupvars.bat脚本去初始化环境,打包openvino开发库,在代码中加载环境路径

conda activate opinstall
cd C:\Program Files (x86)\Intel\openvino_2021.4.752\deployment_tools\tools\deployment_manager
python deployment_manager.py

在该界面下输入1回车,8回车,最后在回车(我使用的py3.7)按照自己的py版本进行选择,执行完,生成openvino_deploy_package.zip包

解压压缩包下的文件夹 openvino_deploy_package\deployment_tools到dist目录下

 修改代码,自动加载环境路径

import os

cur_path = os.getcwd().replace('\\', '/')
hdll_path = cur_path + '/deployment_tools/inference_engine/external/hddl/bin;'
tbb_path = cur_path + '/deployment_tools/inference_engine/external/tbb/bin;'
Debug_path = cur_path + '/deployment_tools/inference_engine/bin/intel64/Debug;'
Release_path = cur_path + '/deployment_tools/inference_engine/bin/intel64/Release;'
ngraph_path = cur_path + '/deployment_tools/ngraph/lib;'
model_optimizer_path = cur_path + '/deployment_tools/model_optimizer;'
os.environ['Path'] += hdll_path + tbb_path + Debug_path + Release_path + ngraph_path + model_optimizer_path

import numpy as np
from openvino.inference_engine import IECore

if __name__ == '__main__':
    print("start auto")
    e = IECore()
    print("end")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/937247.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql基础下

文章目录 1.创建表和管理表1. 一条数据存储的过程2.MySQL中的数据类型3.创建表4.修改表5.重命名表6.删除表7.清空表 2.数据处理1. 插入数据2.更新数据3. 删除数据4. 将查询结果插入到表中 3. 约束1.约束概述2.非空约束3.唯一性约束4. 主键&#xff08;PRIMARY KEY&#xff09;约…

山西电力市场日前价格预测【2023-08-28】

日前价格预测 预测明日&#xff08;2023-08-28&#xff09;山西电力市场全天平均日前电价为319.70元/MWh。其中&#xff0c;最高日前电价为371.80元/MWh&#xff0c;预计出现在19: 15。最低日前电价为278.59元/MWh&#xff0c;预计出现在13: 00。 价差方向预测 1&#xff1a; …

秋招打卡016(0827)

文章目录 前言一、今天学习了什么&#xff1f;二、关于问题的答案1.牛客网面经2.美团后端一面3.动态规划 总结 前言 提示&#xff1a;这里为每天自己的学习内容心情总结&#xff1b; Learn By Doing&#xff0c;Now or Never&#xff0c;Writing is organized thinking. 先多…

基于海洋捕食者算法优化的BP神经网络(预测应用) - 附代码

基于海洋捕食者算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于海洋捕食者算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.海洋捕食者优化BP神经网络2.1 BP神经网络参数设置2.2 海洋捕食者算法应用 4.测试结果&…

企业使用CRM如何统一销售流程管理?

销售流程我们可以理解为&#xff0c;销售人员从寻找潜在客户到最终达成交易的一系列步骤。很多企业通过CRM系统来进行销售流程管理&#xff0c;提高销售效率&#xff0c;实现销售目标。下面我们就来说说&#xff0c;CRM如何进行销售流程管理。 制定统一的销售流程&#xff1a;…

关于 Camera 预览和录像画质不一样的问题分析

1、问题背景 基于之前安卓平台的一个项目&#xff0c;客户有反馈过一个 Camera app 预览的效果&#xff0c;和录像效果不一致的问题。 这里的预览是指打开 Camera app 后直接出图的效果&#xff1b;录像的效果则是指打开 Camera app 开启录像功能&#xff0c;录制一段视频&…

【算法专题突破】双指针 - 快乐数(3)

目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后&#xff1a; 1. 题目解析 题目链接&#xff1a;202. 快乐数 - 力扣&#xff08;Leetcode&#xff09; 这道题的题目也很容易理解&#xff0c; 看一下题目给的示例就能很容易明白&#xff0c; 但是要注意一个点&#…

一篇带你了解npm的原理

npm 是 JavaScript世界的包管理工具,并且是 Node.js平台的默认包管理工具。通过 npm可以安装、共享、分发代码,管理项目依赖关系。 npm的原理 npm据称成为世界最大的包管理器?原因真的只是用户友好? 一、npm init 用来初始化一个简单的package.json文件。package.json文件…

9.3 功率放大电路的安全运行

在功率放大电路中&#xff0c;功放管既要流过大电流&#xff0c;又要承受高电压。例如&#xff0c;在 OCL 电路中&#xff0c;只有功放管满足式&#xff08;9.2.13&#xff09;所示极限值的要求&#xff0c;电路才能正常工作。因此&#xff0c;所谓功率放大电路的安全运行&…

微服务学习资料

文章目录 参考资料一. 微服务概述1. CAP理论2. BASE理论3. SpringBoot 与 SpringCloud对比 二. 服务注册&#xff1a;Zookeeper,Eureka,Nacos,Consul1. Nacos两种健康检查方式&#xff1f;2. nacos中负责负载均衡底层是如何实现的3. Nacos原理4. 临时实例和持久化(非临时)实例 …

【数据结构与算法篇】手撕八大排序算法之交换排序

​&#x1f47b;内容专栏&#xff1a; 《数据结构与算法篇》 &#x1f428;本文概括&#xff1a;常见交换排序包括冒泡排序与快速排序&#xff0c;本篇讲述冒泡排序与快速排序的思想及实现、复杂度分析。 &#x1f43c;本文作者&#xff1a; 花 蝶 &#x1f438;发布时间&#…

表和Json的相互操作

目录 一、表转Json 1.使用 for json path 2.如何返回单个Json 3.如何给返回的Json增加一个根节点呢 4.如何给返回的Json增加上一个节点 二、对Json基本操作 1.判断给的字符串是否是Json格式 2.从 JSON 字符串中提取标量值 3. 从 JSON 字符串中提取对象或数组 4. 更…

计网-All

路由器的功能与路由表的查看_路由器路由表_傻傻小猪哈哈的博客-CSDN博客路由基础-直连路由、静态路由与动态路由的概念_MikeVane-bb的博客-CSDN博客路由器的功能与路由表的查看_路由器路由表_傻傻小猪哈哈的博客-CSDN博客 直连路由就是路由器直接连了一个网段&#xff0c;他就…

在线考试系统java线上答题问答jsp源代码MySQL

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 在线考试系统 系统有2权限&#xff1a;管理员、学生 …

ChatGPT 与前端技术实现制作大屏可视化

像这样的综合案例实分析,我们可以提供案例,维度与指标数据,让ChatGPT与AIGC 帮写出完整代码,并进行一个2行2列的布局设置。 数据与指令如下: 商品名称 销量 目标 完成率 可乐 479 600 79.83% 雪碧 324 600 54.00% 红茶 379 600 63.…

NoSQL数据库介绍+Redis部署

目录 一、NoSQL概述 1、数据的高并发读写 2、海量数据的高效率存储和访问 3、数据库的高扩展和高可用 二、NoSQL的类别 1、键值存储数据库 2、列存储数据库 3、文档型数据库 4、图形化数据库 三、分布式数据库中的CAP原理 1、传统的ACID 1&#xff09;、A--原子性 …

webassembly001 webassembly简述

WebAssembly 官方地址:https://webassembly.org/相关历史 https://en.wikipedia.org/wiki/WebAssembly https://brendaneich.com/2015/06/from-asm-js-to-webassembly/WebAssembly&#xff08;缩写为Wasm&#xff09;是一种基于堆栈的虚拟机的二进制指令格式。Wasm 被设计为编…

【C语言练习】牛客题库第(一)期

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…

攻防演练期间一次对某企业的渗透测试

免责声明 由于传播、利用本文章说黑客所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者说黑客不为此承担任何责任&#xff0c;一旦造成后果请自行承担&#xff01; 前言 某次攻防演练中&#xff0c;主办方只提供了目标…

软考:中级软件设计师:HTML

软考&#xff1a;中级软件设计师:HTML 提示&#xff1a;系列被面试官问的问题&#xff0c;我自己当时不会&#xff0c;所以下来自己复盘一下&#xff0c;认真学习和总结&#xff0c;以应对未来更多的可能性 关于互联网大厂的笔试面试&#xff0c;都是需要细心准备的 &#xff…