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 就什么都做不了。
谢谢。
我尝试使用 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 就什么都做不了。
谢谢。