pip source installation fails when using a venv + mingw
Followed the installation instructions for install from source, and (obviously) would like to use a venv (via venvlink or uv) to compartmentalize the installation.
The compile stage then fails, as it is trying to start a subprocess (wich of course doesn't know about my venv.)
Version & Platform
Version: Using a git clone
Platform: Windows-11 Pro
Language: Python 3.12.9 or C++17 ?
Compiler: MSVS 2022, MSVC 2019
platform backend: ❓
rendering backend Vulkan or DirectX
# pip install -v .
...
[215/215] C:\WINDOWS\system32\cmd.exe /C "cd . && C:\lang\perl\c\bin\c++.exe -O3 -DNDEBUG -shared -o _imgui_bundle.cp312-win_amd64.pyd -Wl,--major-image-version,0,--minor-image-version,0 CMakeFiles/_imgui_bundle.dir/external/bindings_generation/cpp/module.cpp.obj CMakeFiles/_imgui_bundle.dir/external/bindings_generation/cpp/pybind_imgui_bundle.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imgui/bindings/pybind_imgui_backends.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imgui/bindings/pybind_imgui.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imgui/bindings/pybind_imgui_test_engine.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imgui/bindings/pybind_imgui_internal.cpp.obj CMakeFiles/_imgui_bundle.dir/external/hello_imgui/bindings/pybind_hello_imgui.cpp.obj CMakeFiles/_imgui_bundle.dir/external/ImCoolBar/bindings/pybind_imcoolbar.cpp.obj CMakeFiles/_imgui_bundle.dir/external/ImFileDialog/bindings/pybind_im_file_dialog.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imgui-command-palette/bindings/pybind_imgui_command_palette.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imgui-knobs/bindings/pybind_imgui_knobs.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imgui-node-editor/bindings/pybind_imgui_node_editor.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imgui_md/bindings/pybind_imgui_md.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imgui_tex_inspect/bindings/pybind_imgui_tex_inspect.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imgui_toggle/bindings/pybind_imgui_toggle.cpp.obj CMakeFiles/_imgui_bundle.dir/external/ImGuiColorTextEdit/bindings/pybind_imgui_color_text_edit.cpp.obj CMakeFiles/_imgui_bundle.dir/external/ImGuizmo/bindings/pybind_imguizmo.cpp.obj CMakeFiles/_imgui_bundle.dir/external/immapp/bindings/pybind_immapp_cpp.cpp.obj CMakeFiles/_imgui_bundle.dir/external/immvision/bindings/pybind_immvision.cpp.obj CMakeFiles/_imgui_bundle.dir/external/implot/bindings/pybind_implot.cpp.obj CMakeFiles/_imgui_bundle.dir/external/implot/bindings/pybind_implot_internal.cpp.obj CMakeFiles/_imgui_bundle.dir/external/implot3d/bindings/pybind_implot3d.cpp.obj CMakeFiles/_imgui_bundle.dir/external/implot3d/bindings/pybind_implot3d_internal.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imspinner/bindings/pybind_imspinner.cpp.obj CMakeFiles/_imgui_bundle.dir/external/portable_file_dialogs/bindings/pybind_portable_file_dialogs.cpp.obj CMakeFiles/_imgui_bundle.dir/external/nanovg/bindings/pybind_nanovg.cpp.obj -LC:/lang/Python312/libs libnanobind-static.a -lopengl32 C:/lang/Python312/libs/python312.lib external/libimgui_node_editor.a external/libimgui_md.a external/immapp/immapp/libimmapp.a external/libimgui_node_editor.a external/libimgui_md.a external/immapp/immapp/libimmapp.a external/libimgui_pywrappers.a external/libimplot3d.a external/libimguizmo.a external/libimgui_tex_inspect.a external/libnvg_imgui.a external/nanovg/nanovg/libnanovg.a external/libimgui_knobs.a external/libimspinner.a external/libimgui_toggle.a external/libimgui_command_palette.a external/libimcoolbar.a external/ImGuiColorTextEdit/libimgui_color_text_edit.a external/libimplot.a external/libim_file_dialog.a external/hello_imgui/hello_imgui/src/hello_imgui/libhello_imgui.a external/hello_imgui/hello_imgui/src/hello_imgui/libstb_hello_imgui.a external/glfw/glfw/src/libglfw3dll.a external/hello_imgui/hello_imgui/src/hello_imgui/libglad.a -lopengl32 external/libimgui.a external/hello_imgui/hello_imgui/src/hello_imgui/libimgui_test_engine.a external/libimgui.a external/hello_imgui/hello_imgui/src/hello_imgui/libimgui_test_engine.a -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
FAILED: _imgui_bundle.cp312-win_amd64.pyd
C:\WINDOWS\system32\cmd.exe /C "cd . && C:\lang\perl\c\bin\c++.exe -O3 -DNDEBUG -shared -o _imgui_bundle.cp312-win_amd64.pyd -Wl,--major-image-version,0,--minor-image-version,0 CMakeFiles/_imgui_bundle.dir/external/bindings_generation/cpp/module.cpp.obj CMakeFiles/_imgui_bundle.dir/external/bindings_generation/cpp/pybind_imgui_bundle.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imgui/bindings/pybind_imgui_backends.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imgui/bindings/pybind_imgui.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imgui/bindings/pybind_imgui_test_engine.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imgui/bindings/pybind_imgui_internal.cpp.obj CMakeFiles/_imgui_bundle.dir/external/hello_imgui/bindings/pybind_hello_imgui.cpp.obj CMakeFiles/_imgui_bundle.dir/external/ImCoolBar/bindings/pybind_imcoolbar.cpp.obj CMakeFiles/_imgui_bundle.dir/external/ImFileDialog/bindings/pybind_im_file_dialog.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imgui-command-palette/bindings/pybind_imgui_command_palette.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imgui-knobs/bindings/pybind_imgui_knobs.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imgui-node-editor/bindings/pybind_imgui_node_editor.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imgui_md/bindings/pybind_imgui_md.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imgui_tex_inspect/bindings/pybind_imgui_tex_inspect.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imgui_toggle/bindings/pybind_imgui_toggle.cpp.obj CMakeFiles/_imgui_bundle.dir/external/ImGuiColorTextEdit/bindings/pybind_imgui_color_text_edit.cpp.obj CMakeFiles/_imgui_bundle.dir/external/ImGuizmo/bindings/pybind_imguizmo.cpp.obj CMakeFiles/_imgui_bundle.dir/external/immapp/bindings/pybind_immapp_cpp.cpp.obj CMakeFiles/_imgui_bundle.dir/external/immvision/bindings/pybind_immvision.cpp.obj CMakeFiles/_imgui_bundle.dir/external/implot/bindings/pybind_implot.cpp.obj CMakeFiles/_imgui_bundle.dir/external/implot/bindings/pybind_implot_internal.cpp.obj CMakeFiles/_imgui_bundle.dir/external/implot3d/bindings/pybind_implot3d.cpp.obj CMakeFiles/_imgui_bundle.dir/external/implot3d/bindings/pybind_implot3d_internal.cpp.obj CMakeFiles/_imgui_bundle.dir/external/imspinner/bindings/pybind_imspinner.cpp.obj CMakeFiles/_imgui_bundle.dir/external/portable_file_dialogs/bindings/pybind_portable_file_dialogs.cpp.obj CMakeFiles/_imgui_bundle.dir/external/nanovg/bindings/pybind_nanovg.cpp.obj -LC:/lang/Python312/libs libnanobind-static.a -lopengl32 C:/lang/Python312/libs/python312.lib external/libimgui_node_editor.a external/libimgui_md.a external/immapp/immapp/libimmapp.a external/libimgui_node_editor.a external/libimgui_md.a external/immapp/immapp/libimmapp.a external/libimgui_pywrappers.a external/libimplot3d.a external/libimguizmo.a external/libimgui_tex_inspect.a external/libnvg_imgui.a external/nanovg/nanovg/libnanovg.a external/libimgui_knobs.a external/libimspinner.a external/libimgui_toggle.a external/libimgui_command_palette.a external/libimcoolbar.a external/ImGuiColorTextEdit/libimgui_color_text_edit.a external/libimplot.a external/libim_file_dialog.a external/hello_imgui/hello_imgui/src/hello_imgui/libhello_imgui.a external/hello_imgui/hello_imgui/src/hello_imgui/libstb_hello_imgui.a external/glfw/glfw/src/libglfw3dll.a external/hello_imgui/hello_imgui/src/hello_imgui/libglad.a -lopengl32 external/libimgui.a external/hello_imgui/hello_imgui/src/hello_imgui/libimgui_test_engine.a external/libimgui.a external/hello_imgui/hello_imgui/src/hello_imgui/libimgui_test_engine.a -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
C:/lang/perl/c/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/libimgui.a(imgui_impl_opengl2.cpp.obj):imgui_impl_opengl2.cpp:(.text.unlikely+0xb8): undefined reference to `__imp_glGetIntegerv'
C:/lang/perl/c/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/libimgui.a(imgui_impl_opengl2.cpp.obj):imgui_impl_opengl2.cpp:(.text.unlikely+0xc5): undefined reference to `__imp_glGenTextures'
C:/lang/perl/c/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/hello_imgui/hello_imgui/src/hello_imgui/libimgui_test_engine.a(imgui_te_python_gil.cpp.obj):imgui_te_python_gil.cpp:(.text+0x4b): undefined reference to `__imp_Py_IsInitialized'
C:/lang/perl/c/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/hello_imgui/hello_imgui/src/hello_imgui/libimgui_test_engine.a(imgui_te_python_gil.cpp.obj):imgui_te_python_gil.cpp:(.text+0x62): undefined reference to `__imp_PyEval_SaveThread'
C:/lang/perl/c/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/hello_imgui/hello_imgui/src/hello_imgui/libimgui_test_engine.a(imgui_te_python_gil.cpp.obj):imgui_te_python_gil.cpp:(.text+0x8a): undefined reference to `__imp_Py_IsInitialized'
C:/lang/perl/c/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/hello_imgui/hello_imgui/src/hello_imgui/libimgui_test_engine.a(imgui_te_python_gil.cpp.obj):imgui_te_python_gil.cpp:(.text+0x9f): undefined reference to `__imp_PyEval_RestoreThread'
C:/lang/perl/c/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/hello_imgui/hello_imgui/src/hello_imgui/libimgui_test_engine.a(imgui_te_python_gil.cpp.obj):imgui_te_python_gil.cpp:(.text+0xc8): undefined reference to `__imp_Py_IsInitialized'
C:/lang/perl/c/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/hello_imgui/hello_imgui/src/hello_imgui/libimgui_test_engine.a(imgui_te_python_gil.cpp.obj):imgui_te_python_gil.cpp:(.text+0x137): undefined reference to `__imp_Py_IsInitialized'
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
*** CMake build failed
error: subprocess-exited-with-error
× Building wheel for imgui-bundle (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
full command: 'C:\venvs\imgui\Scripts\python.exe' 'C:\venvs\imgui\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py' build_wheel 'C:\tmp\tmpcoy0uem9'
cwd: C:\mydev\gitclones\imgui_bundle
Building wheel for imgui-bundle (pyproject.toml) ... error
ERROR: Failed building wheel for imgui-bundle
Failed to build imgui-bundle
ERROR: Failed to build installable wheels for some pyproject.toml based projects (imgui-bundle)
However, pip install imgui-bundle worked.
So what's the difference?
Hi,
I just tried this on windows 11 with visual studio 2022:
C:\Utils\Python\Python312\python.exe -m venv venv
.\venv\Scripts\activate
git clone https://github.com/pthom/imgui_bundle.git
cd .\imgui_bundle\
git submodule update --init --recursive
pip install -v .
And it worked. I cannot reproduce your issue.
However, I see that you are compiling with x86_64-w64-mingw32. I do not support this for python bindings. Please compile with msvc
However, I see that you are compiling with x86_64-w64-mingw32. I do not support this for python bindings. Please compile with msvc.
No I am not. This is weird.
I'm using normal pip Python3.12 distro for Windows. I have perl installed, so I have no idea why or what is trying to access the Perl provided compiler and linker, x86_64-w64-mingw32 linker (/bin/ld.exe).
[215/215] C:\WINDOWS\system32\cmd.exe /C "cd . && C:\lang\perl\c\bin\c++.exe -O3 -DNDEBUG -shared -o _imgui_bundle.cp312-win_amd64.pyd -Wl,--major-image-version,0,--minor-image-version,0 CMakeFiles/_imgui_bundle.dir/external/bindings_generation/cpp/module.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/bindings_generation/cpp/pybind_imgui_bundle.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/imgui/bindings/pybind_imgui_backends.cpp.obj C
MakeFiles/_imgui_bundle.dir/external/imgui/bindings/pybind_imgui.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/imgui/bindings/pybind_imgui_test_engine.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/imgui/bindings/pybind_imgui_internal.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/hello_imgui/bindings/pybind_hello_imgui.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/ImCoolBar/bindings/pybind_imcoolbar.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/ImFileDialog/bindings/pybind_im_file_dialog.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/imgui-command-palette/bindings/pybind_imgui_command_palette.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/imgui-knobs/bindings/pybind_imgui_knobs.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/imgui-node-editor/bindings/pybind_imgui_node_editor.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/imgui_md/bindings/pybind_imgui_md.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/imgui_tex_inspect/bindings/pybind_imgui_tex_inspect.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/imgui_toggle/bindings/pybind_imgui_toggle.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/ImGuiColorTextEdit/bindings/pybind_imgui_color_text_edit.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/ImGuizmo/bindings/pybind_imguizmo.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/immapp/bindings/pybind_immapp_cpp.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/immvision/bindings/pybind_immvision.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/implot/bindings/pybind_implot.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/implot/bindings/pybind_implot_internal.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/implot3d/bindings/pybind_implot3d.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/implot3d/bindings/pybind_implot3d_internal.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/imspinner/bindings/pybind_imspinner.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/portable_file_dialogs/bindings/pybind_portable_file_dialogs.cpp.obj
CMakeFiles/_imgui_bundle.dir/external/nanovg/bindings/pybind_nanovg.cpp.obj
-LC:/lang/Python312/libs libnanobind-static.a
-lopengl32 C:/lang/Python312/libs/python312.lib
external/libimgui_node_editor.a
external/libimgui_md.a
external/immapp/immapp/libimmapp.a
external/libimgui_node_editor.a
external/libimgui_md.a
external/immapp/immapp/libimmapp.a
external/libimgui_pywrappers.a
external/libimplot3d.a
external/libimguizmo.a
external/libimgui_tex_inspect.a
external/libnvg_imgui.a
external/nanovg/nanovg/libnanovg.a
external/libimgui_knobs.a
external/libimspinner.a
external/libimgui_toggle.a
external/libimgui_command_palette.a
external/libimcoolbar.a
external/ImGuiColorTextEdit/libimgui_color_text_edit.a
external/libimplot.a
external/libim_file_dialog.a
external/hello_imgui/hello_imgui/src/hello_imgui/libhello_imgui.a
external/hello_imgui/hello_imgui/src/hello_imgui/libstb_hello_imgui.a
external/glfw/glfw/src/libglfw3dll.a
external/hello_imgui/hello_imgui/src/hello_imgui/libglad.a -lopengl32
external/libimgui.a
external/hello_imgui/hello_imgui/src/hello_imgui/libimgui_test_engine.a
external/libimgui.a
external/hello_imgui/hello_imgui/src/hello_imgui/libimgui_test_engine.a -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
Must be something wrong in the CMakeFiles or Compiler env variables... I didn't run this from the Developer Environment (Powershell) so maybe it has trouble finding a compiler and just used anything in the path.
Did you try to remove C:\lang\perl\c\bin from your PATH prior to running pip install
Just ran into this and removed MSYS2/MinGW related paths from PATH, can confirm it compiles cleanly now with msvc.
Same problem i am unable to install due to same error in venv + mingw
Building wheels for collected packages: imgui-bundle Building wheel for imgui-bundle (pyproject.toml) ... error error: subprocess-exited-with-error
× Building wheel for imgui-bundle (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [25 lines of output] 2025-07-01 20:24:42,984 - scikit_build_core - INFO - RUN: C:\Program Files\CMake\bin\cmake.EXE -E capabilities 2025-07-01 20:24:43,011 - scikit_build_core - INFO - CMake version: 4.1.0 *** scikit-build-core 0.11.5 using CMake 4.1.0 (wheel) 2025-07-01 20:24:43,037 - scikit_build_core - INFO - Implementation: cpython win32 on AMD64 2025-07-01 20:24:43,040 - scikit_build_core - INFO - Build directory: C:\Users\abhin\AppData\Local\Temp\tmp97on_hl8\build *** Configuring CMake... 2025-07-01 20:24:43,091 - scikit_build_core - WARNING - Can't find a Python library, got libdir=None, ldlibrary=None, multiarch=None, masd=None 2025-07-01 20:24:43,105 - scikit_build_core - INFO - RUN: C:\Program Files\CMake\bin\cmake.EXE -S. -BC:\Users\abhin\AppData\Local\Temp\tmp97on_hl8\build -CC:\Users\abhin\AppData\Local\Temp\tmp97on_hl8\build\CMakeInit.txt -DCMAKE_INSTALL_PREFIX=C:\Users\abhin\AppData\Local\Temp\tmp97on_hl8\wheel\platlib loading initial cache file C:\Users\abhin\AppData\Local\Temp\tmp97on_hl8\build\CMakeInit.txt -- Building for: NMake Makefiles CMake Error at CMakeLists.txt:2 (project): Running
'nmake' '-?'
failed with:
no such file or directory
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
*** CMake configuration failed
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for imgui-bundle Failed to build imgui-bundle ERROR: Failed to build installable wheels for some pyproject.toml based projects (imgui-bundle)