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.") | |