From 46314dc7f313db88ebbbd22a535b307b37489b6c Mon Sep 17 00:00:00 2001 From: Jared Van Bortel Date: Fri, 30 Aug 2024 12:54:20 -0400 Subject: [PATCH] python: warn if Microsoft Visual C++ runtime libs are not found (#2920) Signed-off-by: Jared Van Bortel --- gpt4all-bindings/python/CHANGELOG.md | 6 ++++++ gpt4all-bindings/python/gpt4all/_pyllmodel.py | 15 ++++++++++++++- gpt4all-bindings/python/setup.py | 2 +- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/gpt4all-bindings/python/CHANGELOG.md b/gpt4all-bindings/python/CHANGELOG.md index 69346498..2bc195ec 100644 --- a/gpt4all-bindings/python/CHANGELOG.md +++ b/gpt4all-bindings/python/CHANGELOG.md @@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). +## [Unreleased] + +### Added +- Warn on Windows if the Microsoft Visual C++ runtime libraries are not found ([#2920](https://github.com/nomic-ai/gpt4all/pull/2920)) + ## [2.8.2] - 2024-08-14 ### Fixed @@ -56,6 +61,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Restore leading space removal logic that was incorrectly removed in [#2694](https://github.com/nomic-ai/gpt4all/pull/2694) - CUDA: Cherry-pick llama.cpp DMMV cols requirement fix that caused a crash with long conversations since [#2694](https://github.com/nomic-ai/gpt4all/pull/2694) +[Unreleased]: https://github.com/nomic-ai/gpt4all/compare/python-v2.8.2...HEAD [2.8.2]: https://github.com/nomic-ai/gpt4all/compare/python-v2.8.1...python-v2.8.2 [2.8.1]: https://github.com/nomic-ai/gpt4all/compare/python-v2.8.0...python-v2.8.1 [2.8.0]: https://github.com/nomic-ai/gpt4all/compare/python-v2.7.0...python-v2.8.0 diff --git a/gpt4all-bindings/python/gpt4all/_pyllmodel.py b/gpt4all-bindings/python/gpt4all/_pyllmodel.py index d623b528..208d834c 100644 --- a/gpt4all-bindings/python/gpt4all/_pyllmodel.py +++ b/gpt4all-bindings/python/gpt4all/_pyllmodel.py @@ -37,7 +37,20 @@ if platform.system() == "Darwin" and platform.processor() == "i386": raise RuntimeError(textwrap.dedent("""\ Running GPT4All under Rosetta is not supported due to CPU feature requirements. Please install GPT4All in an environment that uses a native ARM64 Python interpreter. - """)) + """).strip()) + +# Check for C++ runtime libraries +if platform.system() == "Windows": + try: + ctypes.CDLL("msvcp140.dll") + ctypes.CDLL("vcruntime140.dll") + ctypes.CDLL("vcruntime140_1.dll") + except OSError as e: + print(textwrap.dedent(f"""\ + {e!r} + The Microsoft Visual C++ runtime libraries were not found. Please install them from + https://aka.ms/vs/17/release/vc_redist.x64.exe + """), file=sys.stderr) def _load_cuda(rtver: str, blasver: str) -> None: diff --git a/gpt4all-bindings/python/setup.py b/gpt4all-bindings/python/setup.py index 75476875..e96f5840 100644 --- a/gpt4all-bindings/python/setup.py +++ b/gpt4all-bindings/python/setup.py @@ -68,7 +68,7 @@ def get_long_description(): setup( name=package_name, - version="2.8.2", + version="2.8.3.dev0", description="Python bindings for GPT4All", long_description=get_long_description(), long_description_content_type="text/markdown",