Python3.10.1 32-bit is not installed

Collecting joulescope
  Using cached joulescope-1.1.12-cp310-cp310-win32.whl
Collecting numpy (from joulescope)
  Using cached numpy-1.26.4-cp310-cp310-win32.whl.metadata (61 kB)
Collecting psutil (from joulescope)
  Using cached psutil-5.9.8-cp37-abi3-win32.whl.metadata (22 kB)
Collecting pyjls>=0.9.2 (from joulescope)
  Using cached pyjls-0.9.2-cp310-cp310-win32.whl
Collecting pyjoulescope-driver>=1.4.7 (from joulescope)
  Using cached pyjoulescope_driver-1.4.8.tar.gz (3.4 MB)
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
Collecting python-dateutil>=2.7.3 (from joulescope)
  Using cached python_dateutil-2.8.2-py2.py3-none-any.whl.metadata (8.2 kB)
Collecting pymonocypher>=3.1.3.2 (from joulescope)
  Using cached pymonocypher-3.1.3.2-cp310-cp310-win32.whl
Collecting pywin32 (from joulescope)
  Using cached pywin32-306-cp310-cp310-win32.whl.metadata (6.6 kB)
Collecting requests (from pyjoulescope-driver>=1.4.7->joulescope)
  Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
Collecting six>=1.5 (from python-dateutil>=2.7.3->joulescope)
  Using cached six-1.16.0-py2.py3-none-any.whl.metadata (1.8 kB)
Collecting charset-normalizer<4,>=2 (from requests->pyjoulescope-driver>=1.4.7->joulescope)
  Using cached charset_normalizer-3.3.2-cp310-cp310-win32.whl.metadata (34 kB)
Collecting idna<4,>=2.5 (from requests->pyjoulescope-driver>=1.4.7->joulescope)
  Using cached idna-3.6-py3-none-any.whl.metadata (9.9 kB)
Collecting urllib3<3,>=1.21.1 (from requests->pyjoulescope-driver>=1.4.7->joulescope)
  Using cached urllib3-2.2.1-py3-none-any.whl.metadata (6.4 kB)
Collecting certifi>=2017.4.17 (from requests->pyjoulescope-driver>=1.4.7->joulescope)
  Using cached certifi-2024.2.2-py3-none-any.whl.metadata (2.2 kB)
Using cached numpy-1.26.4-cp310-cp310-win32.whl (6.0 MB)
Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Using cached psutil-5.9.8-cp37-abi3-win32.whl (251 kB)
Using cached pywin32-306-cp310-cp310-win32.whl (8.5 MB)
Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Using cached requests-2.31.0-py3-none-any.whl (62 kB)
Using cached certifi-2024.2.2-py3-none-any.whl (163 kB)
Using cached charset_normalizer-3.3.2-cp310-cp310-win32.whl (92 kB)
Using cached idna-3.6-py3-none-any.whl (61 kB)
Using cached urllib3-2.2.1-py3-none-any.whl (121 kB)
Building wheels for collected packages: pyjoulescope-driver
  Building wheel for pyjoulescope-driver (pyproject.toml): started
  Building wheel for pyjoulescope-driver (pyproject.toml): finished with status 'error'
Failed to build pyjoulescope-driver

  error: subprocess-exited-with-error
  
  Building wheel for pyjoulescope-driver (pyproject.toml) did not run successfully.
  exit code: 1
  
  [77 lines of output]
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build\lib.win32-cpython-310
  creating build\lib.win32-cpython-310\pyjoulescope_driver
  copying pyjoulescope_driver\program.py -> build\lib.win32-cpython-310\pyjoulescope_driver
  copying pyjoulescope_driver\record.py -> build\lib.win32-cpython-310\pyjoulescope_driver
  copying pyjoulescope_driver\release.py -> build\lib.win32-cpython-310\pyjoulescope_driver
  copying pyjoulescope_driver\time64.py -> build\lib.win32-cpython-310\pyjoulescope_driver
  copying pyjoulescope_driver\version.py -> build\lib.win32-cpython-310\pyjoulescope_driver
  copying pyjoulescope_driver\__init__.py -> build\lib.win32-cpython-310\pyjoulescope_driver
  copying pyjoulescope_driver\__main__.py -> build\lib.win32-cpython-310\pyjoulescope_driver
  creating build\lib.win32-cpython-310\pyjoulescope_driver\entry_points
  copying pyjoulescope_driver\entry_points\api_timeout.py -> build\lib.win32-cpython-310\pyjoulescope_driver\entry_points
  copying pyjoulescope_driver\entry_points\gpi.py -> build\lib.win32-cpython-310\pyjoulescope_driver\entry_points
  copying pyjoulescope_driver\entry_points\info.py -> build\lib.win32-cpython-310\pyjoulescope_driver\entry_points
  copying pyjoulescope_driver\entry_points\measure.py -> build\lib.win32-cpython-310\pyjoulescope_driver\entry_points
  copying pyjoulescope_driver\entry_points\program.py -> build\lib.win32-cpython-310\pyjoulescope_driver\entry_points
  copying pyjoulescope_driver\entry_points\record.py -> build\lib.win32-cpython-310\pyjoulescope_driver\entry_points
  copying pyjoulescope_driver\entry_points\scan.py -> build\lib.win32-cpython-310\pyjoulescope_driver\entry_points
  copying pyjoulescope_driver\entry_points\set_parameter.py -> build\lib.win32-cpython-310\pyjoulescope_driver\entry_points
  copying pyjoulescope_driver\entry_points\statistics.py -> build\lib.win32-cpython-310\pyjoulescope_driver\entry_points
  copying pyjoulescope_driver\entry_points\threads.py -> build\lib.win32-cpython-310\pyjoulescope_driver\entry_points
  copying pyjoulescope_driver\entry_points\__init__.py -> build\lib.win32-cpython-310\pyjoulescope_driver\entry_points
  creating build\lib.win32-cpython-310\pyjoulescope_driver\test
  copying pyjoulescope_driver\test\test_calibration_hash.py -> build\lib.win32-cpython-310\pyjoulescope_driver\test
  copying pyjoulescope_driver\test\test_release.py -> build\lib.win32-cpython-310\pyjoulescope_driver\test
  copying pyjoulescope_driver\test\test_time64.py -> build\lib.win32-cpython-310\pyjoulescope_driver\test
  copying pyjoulescope_driver\test\__init__.py -> build\lib.win32-cpython-310\pyjoulescope_driver\test
  creating build\lib.win32-cpython-310\pyjoulescope_driver\test\release
  copying pyjoulescope_driver\test\release\__init__.py -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release
  creating build\lib.win32-cpython-310\pyjoulescope_driver\test\release\ctrl_app
  copying pyjoulescope_driver\test\release\ctrl_app\__init__.py -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release\ctrl_app
  creating build\lib.win32-cpython-310\pyjoulescope_driver\test\release\ctrl_updater1
  copying pyjoulescope_driver\test\release\ctrl_updater1\__init__.py -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release\ctrl_updater1
  creating build\lib.win32-cpython-310\pyjoulescope_driver\test\release\ctrl_updater2
  copying pyjoulescope_driver\test\release\ctrl_updater2\__init__.py -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release\ctrl_updater2
  creating build\lib.win32-cpython-310\pyjoulescope_driver\test\release\sensor_fpga
  copying pyjoulescope_driver\test\release\sensor_fpga\__init__.py -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release\sensor_fpga
  running egg_info
  writing pyjoulescope_driver.egg-info\PKG-INFO
  writing dependency_links to pyjoulescope_driver.egg-info\dependency_links.txt
  writing entry points to pyjoulescope_driver.egg-info\entry_points.txt
  writing requirements to pyjoulescope_driver.egg-info\requires.txt
  writing top-level names to pyjoulescope_driver.egg-info\top_level.txt
  reading manifest file 'pyjoulescope_driver.egg-info\SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  adding license file 'LICENSE.txt'
  writing manifest file 'pyjoulescope_driver.egg-info\SOURCES.txt'
  copying pyjoulescope_driver\binding.c -> build\lib.win32-cpython-310\pyjoulescope_driver
  copying pyjoulescope_driver\img_alpha.img -> build\lib.win32-cpython-310\pyjoulescope_driver
  copying pyjoulescope_driver\img_beta.img -> build\lib.win32-cpython-310\pyjoulescope_driver
  copying pyjoulescope_driver\img_stable.img -> build\lib.win32-cpython-310\pyjoulescope_driver
  copying pyjoulescope_driver\test\release\index.html -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release
  copying pyjoulescope_driver\test\release\index.json -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release
  copying pyjoulescope_driver\test\release\ctrl_app\index.html -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release\ctrl_app
  copying pyjoulescope_driver\test\release\ctrl_app\index.json -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release\ctrl_app
  copying pyjoulescope_driver\test\release\ctrl_app\js220_ctrl_app_1_0_1.img -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release\ctrl_app
  copying pyjoulescope_driver\test\release\ctrl_app\js220_ctrl_app_1_0_1_CHANGELOG.md -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release\ctrl_app
  copying pyjoulescope_driver\test\release\ctrl_updater1\index.html -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release\ctrl_updater1
  copying pyjoulescope_driver\test\release\ctrl_updater1\index.json -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release\ctrl_updater1
  copying pyjoulescope_driver\test\release\ctrl_updater1\js220_ctrl_updater1_1_0_1.img -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release\ctrl_updater1
  copying pyjoulescope_driver\test\release\ctrl_updater1\js220_ctrl_updater1_1_0_1_CHANGELOG.md -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release\ctrl_updater1
  copying pyjoulescope_driver\test\release\ctrl_updater2\index.html -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release\ctrl_updater2
  copying pyjoulescope_driver\test\release\ctrl_updater2\index.json -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release\ctrl_updater2
  copying pyjoulescope_driver\test\release\ctrl_updater2\js220_ctrl_updater2_1_0_1.img -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release\ctrl_updater2
  copying pyjoulescope_driver\test\release\ctrl_updater2\js220_ctrl_updater2_1_0_1_CHANGELOG.md -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release\ctrl_updater2
  copying pyjoulescope_driver\test\release\sensor_fpga\index.html -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release\sensor_fpga
  copying pyjoulescope_driver\test\release\sensor_fpga\index.json -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release\sensor_fpga
  copying pyjoulescope_driver\test\release\sensor_fpga\js220_fpga_1_0_1.img -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release\sensor_fpga
  copying pyjoulescope_driver\test\release\sensor_fpga\js220_fpga_1_0_1_CHANGELOG.md -> build\lib.win32-cpython-310\pyjoulescope_driver\test\release\sensor_fpga
  warning: build_py: byte-compiling is disabled, skipping.
  
  running build_ext
  building 'pyjoulescope_driver.binding' extension
  error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
  [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pyjoulescope-driver
ERROR: Could not build wheels for pyjoulescope-driver, which is required to install pyproject.toml-based projects

Same as issue #26.

We only distribute 64-bit arm64 (x86-64) binary wheels, and that is all we officially support. If you are on 64-bit windows, you should be using 64-bit python, which may solve the problem.

We do not officially support 32-bit Windows or Windows arm64 (like the Microsoft surface). However, you may be able to get it working. You will need to build the code yourself. In order to have a chance, you need to install Microsoft Visual Studio C++ as directed by the error message.