Skip to content

pip source installation fails when using a venv + mingw #332

@eabase

Description

@eabase

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    faqA frequent issue, remaining opened to facilitate discoverability

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions