mirror of
https://github.com/BinomialLLC/basis_universal.git
synced 2026-06-14 03:09:10 +00:00
86 lines
2.1 KiB
Markdown
86 lines
2.1 KiB
Markdown
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
|
|
|