Spaces:
Runtime error
Runtime error
import os | |
import subprocess # nosec - disable B404:import-subprocess check | |
import sys | |
from pathlib import Path | |
from pprint import pprint | |
import pip | |
try: | |
from jupyter_client.kernelspec import KernelSpecManager, NoSuchKernel | |
except: | |
print( | |
"Importing Jupyter failed. Please follow the installation instructions " | |
"in the README in the same directory as this script or " | |
"at https://github.com/openvinotoolkit/openvino_notebooks." | |
) | |
sys.exit() | |
def show_supported(supported): | |
""" | |
Returns OK (in green) if supported evaluates to True, otherwise NOT OK (in red). | |
""" | |
try: | |
from colorama import Fore, Style, init | |
init() | |
startcolor = Fore.GREEN if supported else Fore.RED | |
stopcolor = Style.RESET_ALL | |
except: | |
startcolor = stopcolor = "" | |
output = "OK" if supported else "NOT OK" | |
return f"{startcolor}{output}{stopcolor}" | |
def pip_check(): | |
result = subprocess.run(["pip", "check"], universal_newlines=True, stdout=subprocess.PIPE) | |
if "No broken requirements found" in result.stdout: | |
return True, "" | |
else: | |
return False, result | |
def kernel_check(): | |
try: | |
kernel = KernelSpecManager().get_kernel_spec("openvino_env") | |
except NoSuchKernel: | |
return False, "" | |
kernel_python = kernel.argv[0] | |
return True, kernel_python | |
PYTHON_EXECUTABLE = sys.executable | |
PYTHON_VERSION = sys.version_info | |
PIP_VERSION = pip.__version__ | |
OS = sys.platform | |
KERNEL_INSTALLED, KERNEL_PYTHON = kernel_check() | |
NO_BROKEN_REQUIREMENTS, PIP_CHECK_OUTPUT = pip_check() | |
CORRECT_KERNEL_PYTHON = PYTHON_EXECUTABLE == KERNEL_PYTHON | |
IN_OPENVINO_ENV = "openvino_env" in sys.executable | |
SUPPORTED_PYTHON_VERSION = PYTHON_VERSION.major == 3 and (PYTHON_VERSION.minor >= 8 and PYTHON_VERSION.minor <= 11) | |
GLOBAL_OPENVINO_INSTALLED = "openvino_202" in os.environ.get("LD_LIBRARY_PATH", "") + ":".join(sys.path) | |
try: | |
import openvino | |
PIP_OPENVINO_INSTALLED = True | |
except ImportError: | |
PIP_OPENVINO_INSTALLED = False | |
try: | |
import openvino | |
from openvino.runtime import Core | |
OPENVINO_IE_VERSION = openvino.runtime.get_version() | |
OPENVINO_SOURCE_ROOT = str(Path(openvino.__file__).parent) | |
OPENVINO_IMPORT = True | |
except ImportError: | |
OPENVINO_IMPORT = False | |
DEVTOOLS_INSTALLED = True | |
try: | |
from openvino.tools.mo import mo # OpenVINO 2022.1 | |
except ImportError: | |
DEVTOOLS_INSTALLED = False | |
print("System information:") | |
print(f"Python executable: {PYTHON_EXECUTABLE}") | |
print(f"Pip version: {PIP_VERSION}") | |
if OPENVINO_IMPORT: | |
print(f"OpenVINO source: {OPENVINO_SOURCE_ROOT}") | |
print(f"OpenVINO IE version: {OPENVINO_IE_VERSION}") | |
print(f"OpenVINO environment activated: {show_supported(IN_OPENVINO_ENV)}") | |
print(f"Jupyter kernel installed for openvino_env: {show_supported(KERNEL_INSTALLED)}") | |
if KERNEL_INSTALLED: | |
print(f"Jupyter kernel Python executable: {KERNEL_PYTHON}") | |
print("Jupyter kernel Python and OpenVINO environment Python match: " f"{show_supported(CORRECT_KERNEL_PYTHON)}") | |
print(f"Python version: {PYTHON_VERSION.major}.{PYTHON_VERSION.minor} " f"{show_supported(SUPPORTED_PYTHON_VERSION)}") | |
print(f"OpenVINO pip package installed: {show_supported(PIP_OPENVINO_INSTALLED)}") | |
print(f"OpenVINO import succeeds: {show_supported(OPENVINO_IMPORT)}") | |
print(f"OpenVINO development tools installed: {show_supported(DEVTOOLS_INSTALLED)}") | |
print(f"OpenVINO not installed globally: {show_supported(not GLOBAL_OPENVINO_INSTALLED)}") | |
print(f"No broken requirements: {show_supported(NO_BROKEN_REQUIREMENTS)}") | |
print() | |
if not PIP_OPENVINO_INSTALLED: | |
print( | |
"The OpenVINO PIP package is not installed in this environment. Please\n" | |
"follow the README in the same directory as this check_install script or\n" | |
"at https://github.com/openvinotoolkit/openvino_notebooks to install OpenVINO." | |
) | |
sys.exit(0) | |
if not OPENVINO_IMPORT and OS != "win32" and not GLOBAL_OPENVINO_INSTALLED: | |
print("OpenVINO is installed, but importing fails. This is likely due to a missing\n" "libpython.so library for the Python version you are using.\n") | |
if OS == "linux": | |
print( | |
"If you have multiple Python version installed, use the full path to the Python\n" | |
"executable for creating the virtual environment with a specific Python version.\n" | |
"For example: `/usr/bin/python3.8 -m venv openvino_env`. Once you have activated\n" | |
"the virtual environment you can type just `python` again.\n" | |
) | |
if not IN_OPENVINO_ENV: | |
print( | |
"It appears that you are not running Python in an `openvino_env` \n" | |
"environment. It is possible use the notebooks in a different \n" | |
"environment, but if you run into trouble, please follow the instructions \n" | |
"in the README to install and activate the `openvino_env` environment.\n" | |
) | |
if not CORRECT_KERNEL_PYTHON: | |
print( | |
"The Python version in openvino_env does not match the openvino_env Jupyter kernel.\n" | |
"This may not be an issue. If you experience issues, please follow the instructions\n" | |
"in the README to reinstall the kernel." | |
) | |
if GLOBAL_OPENVINO_INSTALLED: | |
print( | |
"It appears that you installed OpenVINO globally (for example with \n" | |
"the OpenVINO installer, or a package manager). \n" | |
"This may cause conflicts with the OpenVINO environment installed by \n" | |
"pip install. If you encounter issues, please make sure to start the \n" | |
"notebooks from a terminal where you did not run setupvars.sh/setupvars.bat, \n" | |
"and where you did not add OpenVINO paths to your PATH or LD_LIBRARY_PATH. \n" | |
) | |
if OS == "win32": | |
print("PATH:") | |
pprint(sys.path) | |
print() | |
else: | |
print("LD_LIBRARY_PATH:") | |
pprint(os.environ.get("LD_LIBRARY_PATH", "")) | |
print() | |
print( | |
"You may have added the command to source setuptools.sh to your \n" | |
".bashrc, or added the OpenVINO paths to LD_LIBRARY_PATH there.\n" | |
"You can delete the lines from .bashrc and open a new terminal window\n" | |
"or temporarily reset your LD_LIBRARY_PATH by executing\n" | |
"`export LD_LIBRARY_PATH=` in your current terminal.\n" | |
) | |
if (not OPENVINO_IMPORT) and (OS == "win32" and PIP_OPENVINO_INSTALLED): | |
print() | |
print("Importing OpenVINO failed. ") | |
if os.environ.get("CONDA_PREFIX") is not None: | |
print( | |
"To use openvino in a conda environment, you may need to " | |
"adjust your PATH. See step 6 in \n" | |
"https://github.com/openvinotoolkit/openvino_notebooks/wiki/Conda " | |
) | |
else: | |
print( | |
"Importing OpenVINO failed. If you installed Python from the \n" | |
"Windows Store, please try with the Python installer from python.org.\n" | |
"See https://github.com/openvinotoolkit/openvino_notebooks/wiki/Windows" | |
) | |
if not DEVTOOLS_INSTALLED: | |
print() | |
print( | |
"OpenVINO development tools are not installed in this Python environment. \n" "Please follow the instructions in the README to install `openvino-dev`\n" | |
) | |
if not NO_BROKEN_REQUIREMENTS: | |
print() | |
print("`pip check` shows broken requirements:") | |
print(PIP_CHECK_OUTPUT) | |
print() | |
if ( | |
IN_OPENVINO_ENV | |
and PIP_OPENVINO_INSTALLED | |
and OPENVINO_IMPORT | |
and DEVTOOLS_INSTALLED | |
and SUPPORTED_PYTHON_VERSION | |
and KERNEL_INSTALLED | |
and CORRECT_KERNEL_PYTHON | |
and (not GLOBAL_OPENVINO_INSTALLED) | |
): | |
if NO_BROKEN_REQUIREMENTS: | |
print("Everything looks good!") | |
else: | |
print("Summary: The installation looks good, but there are conflicting requirements.") | |
else: | |
print("The README.md file is located in the openvino_notebooks directory \n" "and at https://github.com/openvinotoolkit/openvino_notebooks") | |
if not NO_BROKEN_REQUIREMENTS: | |
print("Broken requirements are often harmless, but could cause issues.") | |