Skip to content

Building with cibuildwheel / pyodide results in "Python config failure: Python is 64-bit, chosen compiler is 32-bit" #1120

@adi-kumo

Description

@adi-kumo

Hi,

We're trying to use our python package in the browser using pyodide.

We're using scikit_build_core.setuptools.build_meta as the build backend. I ran cibuildwheel --platform pyodide . from my repo (on a linux machine), and got the error "Python config failure: Python is 64-bit, chosen compiler is 32-bit".

I know scikit-build-core supports WASM, so I'd like to see if I'm missing anything or if this is a bug.

A snippet from my pyproject.toml:

[build-system]
requires = ["scikit-build-core<0.12.0", "setuptools", "setuptools_scm"]
build-backend = "scikit_build_core.setuptools.build_meta"

[tool.setuptools.packages.find]
where=["."]
include=["myrepo*"]

[tool.setuptools.dynamic]
version = {attr = "myrepo._version.__version__"}

[tool.scikit-build]
cmake.build-type = "Release"
editable.verbose=false

# https://cibuildwheel.pypa.io/en/stableoptions/
[tool.cibuildwheel]
build-frontend = "build[uv]"

Full error:

configure: cmake -DCMAKE_C_COMPILER=/tmp/tmpuxjd2rpt/cc -DCMAKE_CXX_COMPILER=/tmp/tmpuxjd2rpt/c++ -DCMAKE_AR=/tmp/tmpuxjd2rpt/ar -DCMAKE_C_COMPILER_AR=/tmp/tmpuxjd2rpt/ar -DCMAKE_CXX_COMPILER_AR=/tmp/tmpuxjd2rpt/ar --fresh -S. -Bbuild/temp.emscripten_3_1_46_wasm32-cpython-310/_skbuild -DCMAKE_BUILD_TYPE:STRING=Release -Cbuild/temp.emscripten_3_1_46_wasm32-cpython-310/_skbuild/CMakeInit.txt -DCMAKE_INSTALL_PREFIX=build/lib.emscripten_3_1_46_wasm32-cpython-310 -DCMAKE_MAKE_PROGRAM=ninja -DCMAKE_CROSSCOMPILING_EMULATOR=/home/adiw/code/emsdk/node/22.16.0_64bit/bin/node
loading initial cache file build/temp.emscripten_3_1_46_wasm32-cpython-310/_skbuild/CMakeInit.txt
CMake Deprecation Warning at build/temp.emscripten_3_1_46_wasm32-cpython-310/_skbuild/_deps/pybind11-src/CMakeLists.txt:13 (cmake_minimum_required):
  Compatibility with CMake < 3.10 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
  to tell CMake that the project requires at least <min> but has been updated
  to work with policies introduced by <max> or earlier.


-- pybind11 v2.13.6 
-- Found PythonInterp: /tmp/build-env-62vjaez4/bin/python (found suitable version "3.10.12", minimum required is "3.7")
CMake Error at build/temp.emscripten_3_1_46_wasm32-cpython-310/_skbuild/_deps/pybind11-src/tools/FindPythonLibsNew.cmake:214 (message):
  Python config failure: Python is 64-bit, chosen compiler is 32-bit
Call Stack (most recent call first):
  build/temp.emscripten_3_1_46_wasm32-cpython-310/_skbuild/_deps/pybind11-src/tools/pybind11Tools.cmake:50 (find_package)
  build/temp.emscripten_3_1_46_wasm32-cpython-310/_skbuild/_deps/pybind11-src/tools/pybind11Common.cmake:228 (include)
  build/temp.emscripten_3_1_46_wasm32-cpython-310/_skbuild/_deps/pybind11-src/CMakeLists.txt:251 (include)


-- Configuring incomplete, errors occurred!
emcmake: error: 'cmake -DCMAKE_C_COMPILER=/tmp/tmpuxjd2rpt/cc -DCMAKE_CXX_COMPILER=/tmp/tmpuxjd2rpt/c++ -DCMAKE_AR=/tmp/tmpuxjd2rpt/ar -DCMAKE_C_COMPILER_AR=/tmp/tmpuxjd2rpt/ar -DCMAKE_CXX_COMPILER_AR=/tmp/tmpuxjd2rpt/ar --fresh -S. -Bbuild/temp.emscripten_3_1_46_wasm32-cpython-310/_skbuild -DCMAKE_BUILD_TYPE:STRING=Release -Cbuild/temp.emscripten_3_1_46_wasm32-cpython-310/_skbuild/CMakeInit.txt -DCMAKE_INSTALL_PREFIX=build/lib.emscripten_3_1_46_wasm32-cpython-310 -DCMAKE_MAKE_PROGRAM=ninja -DCMAKE_CROSSCOMPILING_EMULATOR=/home/adiw/code/emsdk/node/22.16.0_64bit/bin/node' failed (returned 1)
Traceback (most recent call last):
  File "/home/adiw/code/myrepo/venv/lib/python3.10/site-packages/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
    main()
  File "/home/adiw/code/myrepo/venv/lib/python3.10/site-packages/pyproject_hooks/_in_process/_in_process.py", line 373, in main
    json_out["return_val"] = hook(**hook_input["kwargs"])
  File "/home/adiw/code/myrepo/venv/lib/python3.10/site-packages/pyproject_hooks/_in_process/_in_process.py", line 280, in build_wheel
    return _build_backend().build_wheel(
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/setuptools/build_meta.py", line 432, in build_wheel
    return _build(['bdist_wheel'])
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/setuptools/build_meta.py", line 423, in _build
    return self._build_with_temp_dir(
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/setuptools/build_meta.py", line 404, in _build_with_temp_dir
    self.run_setup()
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/setuptools/build_meta.py", line 317, in run_setup
    exec(code, locals())
  File "<string>", line 22, in <module>
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/setuptools/__init__.py", line 115, in setup
    return distutils.core.setup(**attrs)
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 186, in setup
    return run_commands(dist)
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 202, in run_commands
    dist.run_commands()
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 1002, in run_commands
    self.run_command(cmd)
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/setuptools/dist.py", line 1102, in run_command
    super().run_command(command)
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 1021, in run_command
    cmd_obj.run()
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/setuptools/command/bdist_wheel.py", line 370, in run
    self.run_command("build")
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 357, in run_command
    self.distribution.run_command(command)
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/setuptools/dist.py", line 1102, in run_command
    super().run_command(command)
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 1021, in run_command
    cmd_obj.run()
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/setuptools/_distutils/command/build.py", line 135, in run
    self.run_command(cmd_name)
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 357, in run_command
    self.distribution.run_command(command)
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/setuptools/dist.py", line 1102, in run_command
    super().run_command(command)
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 1021, in run_command
    cmd_obj.run()
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/scikit_build_core/setuptools/build_cmake.py", line 166, in run
    builder.configure(
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/scikit_build_core/builder/builder.py", line 294, in configure
    self.config.configure(
  File "/tmp/build-env-62vjaez4/lib/python3.10/site-packages/scikit_build_core/cmake.py", line 262, in configure
    raise FailedLiveProcessError(msg) from None
scikit_build_core.errors.FailedLiveProcessError: CMake configuration failed

ERROR Backend subprocess exited when trying to invoke build_wheel

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions