| Windows Native Python Build Instructions |
| ======================================== |
| |
| This project uses pybind11 to build Python .pyd extension modules on Windows. |
| Because Windows installs multiple Python versions, and pybind11 currently only |
| supports up to Python 3.12, you must follow these steps exactly. |
| |
| Requirements |
| ------------ |
| - Visual Studio Developer Command Prompt (VS C++ Build Tools installed) |
| - Python 3.12 (pybind11 does NOT support 3.13+ at the time of writing) |
| - pybind11 installed into Python 3.12 |
| |
| Check installed Python versions: |
| py -0 |
| |
| If Python 3.12 is missing: |
| winget install Python.Python.3.12 |
| |
| Install pybind11 for Python 3.12: |
| py -3.12 -m pip install pybind11 |
| |
| IMPORTANT: |
| You must build AND run with the same Python interpreter version (3.12). |
| |
| Building the .pyd Modules |
| ------------------------- |
| Open the "Developer Command Prompt for Visual Studio". |
| |
| From the project root: |
| |
| mkdir build_python_win |
| cd build_python_win |
| |
| Run CMake using the exact path to python.exe for Python 3.12: |
| |
| cmake -G "Visual Studio 17 2022" -A x64 -DBASISU_BUILD_PYTHON=ON -DBASISU_BUILD_WASM=OFF -DPYTHON_EXECUTABLE="C:\Users\<YOU>\AppData\Local\Programs\Python\Python312\python.exe" .. |
| |
| Build: |
| |
| cmake --build . --config Release |
| |
| Output files will be created in: |
| |
| python/basisu_py/basisu_python.pyd |
| python/basisu_py/basisu_transcoder_python.pyd |
| |
| Running the Modules |
| ------------------- |
| Always run using Python 3.12: |
| |
| py -3.12 |
| |
| Inside Python: |
| |
| import basisu_py |
| print("Modules loaded OK.") |
| |
| While in the "python" directory: |
| |
| py -m tests.test_backend_loading |
| |
| WASM Backend (Optional) |
| ----------------------- |
| Install wasmtime: |
| |
| py -3.12 -m pip install wasmtime |
| |
| Ensure these files exist: |
| |
| python/basisu_py/wasm/*.wasm |
| |
| Common Problems |
| --------------- |
| 1. "pybind11 not found" |
| -> Installed into wrong Python version. Use: |
| py -3.12 -m pip install pybind11 |
| |
| 2. "Python config failure" |
| -> You are using Python 3.13 or 3.14. Must use Python 3.12. |
| |
| 3. Modules not loading |
| -> You must run them with the same interpreter used to build them: |
| py -3.12 |
| |