pyinstaller打包openvino 2021.4.2

打包准备

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 IECoreif __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.0import os
import sysif 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 oscur_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_pathimport numpy as np
from openvino.inference_engine import IECoreif __name__ == '__main__':print("start auto")e = IECore()print("end")

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

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

相关文章

8.27周报

文章目录 前言论文阅读摘要介绍模型算法 总结 前言 本周学习了GAN论文《Generative Adversarial Nets》&#xff0c;了解GAN主要由两部分组成&#xff1a;生成器和判别器&#xff0c;知道生成器G和判别器D的作用及原理&#xff0c;相比于其他的生成模型&#xff0c;了解GAN的优…

API管理测试 - 最佳实践和关键要素

什么是API管理测试&#xff1f; API管理测试是在软件开发和集成功能中对应用程序接口&#xff08;API&#xff09;进行测试和验证的过程。它涵盖了测试API的功能、性能、安全性以及与其他系统的交互。API管理测试对于确保API的正确运行和稳定性非常重要。 ​ 为什么API管理测…

谷歌浏览器 设置多账户_使用多个Google帐户时如何设置默认帐户?

谷歌浏览器 设置多账户 If you’re using multiple Google accounts simultaneously there’s a good chance that one of them is the one you want to default. When it isn’t the default it’s rather frustrating; read on as we show a reader how to ensure the accoun…

谷歌广告账户结构

Google竞价广告的帐户结构性设置主要有三层&#xff0c;分别是广告帐户、广告系列和广告组。把它们综合起来 就构成了整个的一个广告框架。 为什么要采用这样一个复杂的三层框架呢&#xff1f;简单来说&#xff0c;其目的就是为了将不同的广告匹配给不同的用户群体&#xff0c;…

谷歌正在向所有账户推出密码终止技术

谷歌宣布让其个人帐户持有人使用称为“密码”的密码替代登录的一项重大努力。 该功能面向公司的数十亿帐户推出&#xff0c;用户将能够主动寻找并启用它。谷歌表示&#xff0c;它计划在未来几个月推广密码&#xff0c;并开始推动账户持有人将他们传统的用户名和密码登录转换为…

如何查看谷歌账户的实际消费金额和扣款金额是否一致?

第一步&#xff1a;找到广告账户上方的报告——预定义报告 。 第二步&#xff1a;预定义报告 下一个层级的其他。 第三步&#xff1a;其他下面的已出账单费用。 第四步&#xff1a;核查数据 可以选择需要核对的历史账单日期。检查投放费用和已出账单费用是否一致。也可以下载下…

谷歌账户在别的网上登过_如何在Google帐户之间转移联系人

谷歌账户在别的网上登过 Google provides no way to automatically sync contacts between two different Google accounts. Instead, you’ll have to perform a manual two-step process where you export your contacts from one account to a comma-separated values (CSV)…

谷歌账户无法添加_如何将多个Google帐户添加到Google Home

谷歌账户无法添加 Google Home is designed to be a shared device that everyone in the house can use. Now, Google has finally made it possible for it to recognize different people and give personalized info to everyone using their Google accounts. Here’s how…

Android 快速集成谷歌账户登录

谷歌登录开发者平台注册地址为https://console.firebase.google.com/&#xff0c;并不是在https&#xff1a;//console.developers.google.com/上进行注册&#xff0c;一开始我也是参考网上的帖子 在谷歌的developers网站上进行注册&#xff0c; 流但发现流程一直走不通&#x…

谷歌账户剩余余额如何退回。

一、点击账户右上角工具与设置-偏好设置 二、账号状态-撤销我的账号&#xff08;切记一定要是具有账户管理员的账户才有此选项展示&#xff09; 此时已经进入退款环节。我们再次确认。 1、点击账户右上角工具与设置-结算-摘要 2、您的退款正在审批中&#xff0c;大概7个工作日…

谷歌浏览器账户密码转移

如果你有多台电脑&#xff0c;在新电脑上面使用谷歌浏览器&#xff0c;但是各个网站都要重新输入密码觉得很麻烦&#xff0c;这里有你想要的&#xff01; 你只需要按下面操作&#xff0c;即可在新电脑谷歌浏览器上面导入以前输入的账户密码&#xff1a; 1. 打开谷歌浏览器&am…

谷歌账户二次验证_为您的Google帐户和Microsoft帐户设置双重身份验证

谷歌账户二次验证 I use Two-Factor Authentication for my Google Apps account and I use the Google Authenticator application on my iPhone to generate the second factor. 我对我的Google Apps帐户使用了双重身份验证,并且在iPhone上使用了Google Authenticator应用程…

Android项目集成谷歌账户登录

在做国外项目的时候,许多需要集成谷歌账户登录功能。 集成谷歌登录后,能直接调用谷歌的账户登录界面进行登录操作(包括注册新用户、忘记密码等),同时会把账户信息保存到设备的account manager中进行管理,检测设备是否已登录了谷歌账户,获取已登录的谷歌账户的相关信息。…

谷歌多账户登陆_如何一次登录多个Google帐户

谷歌多账户登陆 Google has carefully designed its account system so that it can be at the center of your digital life. But if you need to use multiple Google accounts (say, if you have a personal Gmail and a work Gmail), things get tricky quickly. Fortunate…

谷歌账户无法添加_如何将另一个Google帐户添加到您的Android设备

谷歌账户无法添加 In order to set up an Android device, you have to sign in with a Google account. But you can also add more than one Google account, like a work or second personal account. 为了设置Android设备,您必须使用Google帐户登录。 但是,您也可以添加多…

2023超全攻略|教你谷歌账号如何防封、解封?

谷歌账号对于跨境业务来说&#xff0c;是必不可少的。谷歌账号开通后就可以有一个国际化的收发邮箱&#xff0c;也可以开通谷歌广告等谷歌旗下所有的业务&#xff0c;更可以直接登录其它海外网站&#xff0c;比如YouTube、Twitter、Facebook等社交媒体平台。可以说谷歌账号对于…

走向新的乐章——2021年奔驰C级轿车抢先看

2021年奔驰C级这辆轿车采用的是全新发动机和全新改进技术&#xff0c;虽然W205一代梅赛德斯-奔驰c级轿车刚刚更新换代&#xff0c;但我们已经有了第一批全新c级轿车的间谍照&#xff0c;它的内饰型号为W206&#xff0c;并且在未来几年会上市。对于狂热者来说&#xff0c;这何尝…

hw0725

#include "widget.h" #include "ui_widget.h"widget::widget(QWidget *parent): QMainWindow(parent), ui(new Ui::widget) {ui->setupUi(this);//设置尺寸this->resize(800,600);//固定尺寸this->setFixedSize(800,600);//设置窗口标题this->…

0720hw

#include <iostream> #include <cstring>using namespace std; class myString {private:char *str; //记录c风格的字符串int size; //记录字符串的实际长度public://无参构造myString():size(10){str new char[size]; //构造出一个长…