Python: Fix ImportError in imp.py under Python 3.14

It seems `_ERR_MSG` was silently removed in Python 3.14, leading to an
`ImportError` when running the extractor.

To fix this, we explicitly set `_ERR_MSG` when the existing import fails
(using `_ERR_MSG_PREFIX` which is available in Python 3.14+, along with
the bits that make up the difference between this and `_ERR_MSG`).
This commit is contained in:
Taus
2025-10-13 13:50:43 +00:00
parent e65f8eacbc
commit c4b27d5f28
3 changed files with 13 additions and 2 deletions

View File

@@ -17,9 +17,16 @@ except ImportError:
# Platform doesn't support dynamic loading.
create_dynamic = None
from importlib._bootstrap import _ERR_MSG, _exec, _load, _builtin_from_name
from importlib._bootstrap import _exec, _load, _builtin_from_name
from importlib._bootstrap_external import SourcelessFileLoader
# In Python 3.14, `_ERR_MSG` was removed in favor of `_ERR_MSG_PREFIX`.
try:
from importlib._bootstrap import _ERR_MSG
except ImportError:
from importlib._bootstrap import _ERR_MSG_PREFIX
_ERR_MSG = _ERR_MSG_PREFIX + '{name!r}'
from importlib import machinery
from importlib import util
import importlib

View File

@@ -10,7 +10,7 @@ from io import BytesIO
#Semantic version of extractor.
#Update this if any changes are made
VERSION = "7.1.4"
VERSION = "7.1.5"
PY_EXTENSIONS = ".py", ".pyw"

View File

@@ -0,0 +1,4 @@
---
category: fix
---
* The Python extractor no longer crashes with an `ImportError` when run using Python 3.14.