openvino_notebooks / check_install.py
malvika2003's picture
Upload folder using huggingface_hub
db5855f verified
raw
history blame
8.25 kB
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.")