From 4ec4ec844f71a746a67f98f2ecd2679c44f60610 Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Tue, 10 Dec 2019 19:00:10 +0000 Subject: [PATCH 1/2] python: fix issue with bindings loading on Python 3.8 --- modules/python/package/cv2/__init__.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/python/package/cv2/__init__.py b/modules/python/package/cv2/__init__.py index 5220e38553..d367998b0b 100644 --- a/modules/python/package/cv2/__init__.py +++ b/modules/python/package/cv2/__init__.py @@ -68,6 +68,13 @@ def bootstrap(): sys.path.insert(1, p) if os.name == 'nt': + if sys.version_info[:2] >= (3, 8): # https://github.com/python/cpython/pull/12302 + for p in l_vars['BINARIES_PATHS']: + try: + os.add_dll_directory(p) + except Exception as e: + if DEBUG: print('Failed os.add_dll_directory(): '+ str(e)) + pass os.environ['PATH'] = ';'.join(l_vars['BINARIES_PATHS']) + ';' + os.environ.get('PATH', '') if DEBUG: print('OpenCV loader: PATH={}'.format(str(os.environ['PATH']))) else: From 15612ebd39ea072c9af13b5fde68a810d7f44b3a Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Wed, 11 Dec 2019 16:52:38 +0300 Subject: [PATCH 2/2] python: enable Python 3.8 --- modules/python/package/setup.py | 1 + samples/_winpack_run_python_sample.cmd | 2 ++ 2 files changed, 3 insertions(+) diff --git a/modules/python/package/setup.py b/modules/python/package/setup.py index 33a3208225..6bd06c65b7 100644 --- a/modules/python/package/setup.py +++ b/modules/python/package/setup.py @@ -44,6 +44,7 @@ def main(): 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', 'Programming Language :: C++', 'Programming Language :: Python :: Implementation :: CPython', 'Topic :: Scientific/Engineering', diff --git a/samples/_winpack_run_python_sample.cmd b/samples/_winpack_run_python_sample.cmd index 5e84e2e954..a42c0c61cf 100644 --- a/samples/_winpack_run_python_sample.cmd +++ b/samples/_winpack_run_python_sample.cmd @@ -15,6 +15,8 @@ IF %ERRORLEVEL% EQU 0 ( GOTO :PYTHON_FOUND ) +CALL :QUERY_PYTHON 3.8 +IF %ERRORLEVEL% EQU 0 GOTO :PYTHON_FOUND CALL :QUERY_PYTHON 3.7 IF %ERRORLEVEL% EQU 0 GOTO :PYTHON_FOUND CALL :QUERY_PYTHON 3.6