Raspberry PI 3B+ 上的 OpenVino 和 PyInstaller

OpenVino and PyInstaller on Raspberry PI 3B+

我尝试使用 PyInstaller 为 Python 3.5 使用 OpenVino 2020.4.287 构建一个独立的可执行文件。

PyInstaller 成功组装了一个文件,但我在启动后收到下一个错误:

ImportError: No module named 'openvino'

我试图在构建可执行文件时将 /opt/intel/openvino/deployment_tools/inference_engine/lib/armv7l/plugins.xml 包含在数据中,但没有帮助。

所以问题是如何使用带有 OpenVino 导入的 PyInstaller 在 Raspbian 中构建一个独立的可执行文件?

谢谢。

最大的可能性是您在实施之前没有 运行 setupvars。 请注意,在继续 inferencing/etc.

之前,您需要确保每个 cmd 或终端中的 setupvars 已经 运行 并初始化(您应该看到初始化消息)

此 setupvars 会将所需的包放在一起。因此,如果您不 运行 它,您所面临的问题将持续存在。

好的,问题已解决。

初始条件:

Raspbian 拉伸 Python 3.5.

考虑因素:

最后支持Python 3.5的OpenVino是2020.4。

那么,让我们开始吧。我们将创建一个包含以下行的 test.py 文件:

import numpy as np
import openvino.inference_engine.constants
from openvino.inference_engine import IENetwork, IECore
print("start")
e = IECore()
print("end")

现在让我们安装 OpenVino、Pyinstaller,创建一个可执行文件,然后 运行 它:

sudo pip3 install pyinstaller
sudo mkdir -p /opt/intel/openvino
wget https://storage.openvinotoolkit.org/repositories/openvino/packages/2020.4/l_openvino_toolkit_runtime_raspbian_p_2020.4.287.tgz
sudo tar -xf l_openvino_toolkit_runtime_raspbian_p_2020.4.287.tgz --strip 1 -C /opt/intel/openvino
rm l_openvino_toolkit_runtime_raspbian_p_2020.4.287.tgz
sudo apt install cmake
source /opt/intel/openvino/bin/setupvars.sh
sh /opt/intel/openvino/install_dependencies/install_NCS_udev_rules.sh
pyinstaller --onefile --clean --add-data="/opt/intel/openvino/deployment_tools/inference_engine/lib/armv7l/plugins.xml:." test.py
dist/test

应显示“开始”和“结束”消息。

使用 OpenVino 2020.4 时最重要的是下一行:

import openvino.inference_engine.constants

在以前版本的 OpenVino 中,没有这条线一切都会正常工作。但在我的具体情况下,我在 2020.4 之前的 OpenVino 版本上遇到了下一个错误: openvino.inference_engine.ie_api.IECore'对象没有属性'read_network 这就是我为 openvino.inference_engine.constants 指定导入的原因。没有这个,OpenVino 2020.4 就什么都做不了。

谢谢。