-
-
Notifications
You must be signed in to change notification settings - Fork 33.2k
Closed
Labels
type-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
Bug report
Build a debug version of CPython on Windows.
Build an an extension module linked against this debug CPython's python3_d.dll.
This crashes at runtime with the following error:
ImportError: Module use of python3_d.dll conflicts with this version of Python.
This originates from
Lines 311 to 330 in 7a25310
| PyOS_snprintf(buffer, sizeof(buffer), | |
| #ifdef _DEBUG | |
| "python%d%d_d.dll", | |
| #else | |
| "python%d%d.dll", | |
| #endif | |
| PY_MAJOR_VERSION,PY_MINOR_VERSION); | |
| import_python = GetPythonImport(hDLL); | |
| if (import_python && | |
| _stricmp(buffer,import_python)) { | |
| PyErr_Format(PyExc_ImportError, | |
| "Module use of %.150s conflicts " | |
| "with this version of Python.", | |
| import_python); | |
| Py_BEGIN_ALLOW_THREADS | |
| FreeLibrary(hDLL); | |
| Py_END_ALLOW_THREADS | |
| return NULL; | |
| } |
It looks like this code doesn't account for the possibility of linking against python3_d.dll when using a debug build.
Your environment
- CPython versions tested on: main branch, 7a25310
- Operating system and architecture: Windows 12 amd64
Originally reported to me in PyO3/pyo3#2780
Linked PRs
- gh-101614: don't treat python3_d.dll as a Python dll #101615
- [3.11] gh-101614: Don't treat python3_d.dll as a Python DLL when checking extension modules for incompatibility (GH-101615) #101690
- [3.10] gh-101614: Don't treat python3_d.dll as a Python DLL when checking extension modules for incompatibility (GH-101615) #101691
Metadata
Metadata
Assignees
Labels
type-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error