-
Notifications
You must be signed in to change notification settings - Fork 306
Description
Bug Report
NanoVNA-Saver version:
0.7.3
Current behavior:
Building for macOS Tahoe with Homebrew managed Python fails with errors:
From the nanovna_env directory, I ran ./build-macos-app.sh
The build fails - see detailed output below.
The failure occurs because the build-macos-app.sh script invokes python3, which on my machine is python 3.13.7, but nanovnaserver requires python '<3.13,>=3.10' - so mine is too new.
I successfully completed the build by running the commands in build-macos-app.sh explicitly specifying python3.12, for example as below:
python3.12 -m pip install pip==24.2 setuptools==75.2.0
However I realize this isn't a general solution.
Expected behavior:
Successful build of NanoVNAServer.app on running build-macos-app.sh
Steps to reproduce:
Related code:
Other information:
(nanovna_env) **redacted**@macbookair nanovna-saver % ./build-macos-app.sh
Collecting pip==24.2
Using cached pip-24.2-py3-none-any.whl.metadata (3.6 kB)
Collecting setuptools==75.2.0
Using cached setuptools-75.2.0-py3-none-any.whl.metadata (6.9 kB)
Using cached pip-24.2-py3-none-any.whl (1.8 MB)
Using cached setuptools-75.2.0-py3-none-any.whl (1.2 MB)
Installing collected packages: setuptools, pip
Attempting uninstall: pip
Found existing installation: pip 25.2
Uninstalling pip-25.2:
Successfully uninstalled pip-25.2
Successfully installed pip-24.2 setuptools-75.2.0
[notice] A new release of pip is available: 24.2 -> 25.2
[notice] To update, run: pip install --upgrade pip
Obtaining file:///Users/**redacted**/nanovna-saver
Installing build dependencies ... done
Checking if build backend supports build_editable ... done
Getting requirements to build editable ... done
Preparing editable metadata (pyproject.toml) ... done
Collecting pyserial~=3.5 (from NanoVNASaver==0.7.3.post1.dev7+gf793d2ee9)
Using cached pyserial-3.5-py2.py3-none-any.whl.metadata (1.6 kB)
Collecting pyside6~=6.8 (from NanoVNASaver==0.7.3.post1.dev7+gf793d2ee9)
Using cached pyside6-6.9.2-cp39-abi3-macosx_12_0_universal2.whl.metadata (5.3 kB)
Collecting numpy~=2.1 (from NanoVNASaver==0.7.3.post1.dev7+gf793d2ee9)
Using cached numpy-2.3.3-cp313-cp313-macosx_14_0_arm64.whl.metadata (62 kB)
Collecting scipy~=1.14 (from NanoVNASaver==0.7.3.post1.dev7+gf793d2ee9)
Using cached scipy-1.16.2-cp313-cp313-macosx_14_0_arm64.whl.metadata (62 kB)
INFO: pip is looking at multiple versions of nanovnasaver to determine which version is compatible with other requirements. This could take a while.
[notice] A new release of pip is available: 24.2 -> 25.2
[notice] To update, run: pip install --upgrade pip
ERROR: Package 'nanovnasaver' requires a different Python: 3.13.7 not in '<3.13,>=3.10'
Compiling UI files...
/Users/**redacted**/nanovna-saver/macbuildenv/bin/python3: Error while finding module specification for 'tools.ui_compile' (ModuleNotFoundError: No module named 'tools')
Traceback (most recent call last):
File "<string>", line 1, in <module>
import NanoVNASaver; print(f'NanoVNASaver version: {NanoVNASaver.__version__}')
^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'NanoVNASaver'
Collecting pyinstaller
Using cached pyinstaller-6.16.0-py3-none-macosx_10_13_universal2.whl.metadata (8.5 kB)
Collecting altgraph (from pyinstaller)
Using cached altgraph-0.17.4-py2.py3-none-any.whl.metadata (7.3 kB)
Collecting macholib>=1.8 (from pyinstaller)
Using cached macholib-1.16.3-py2.py3-none-any.whl.metadata (11 kB)
Collecting packaging>=22.0 (from pyinstaller)
Using cached packaging-25.0-py3-none-any.whl.metadata (3.3 kB)
Collecting pyinstaller-hooks-contrib>=2025.8 (from pyinstaller)
Using cached pyinstaller_hooks_contrib-2025.9-py3-none-any.whl.metadata (16 kB)
Requirement already satisfied: setuptools>=42.0.0 in ./macbuildenv/lib/python3.13/site-packages (from pyinstaller) (75.2.0)
Using cached pyinstaller-6.16.0-py3-none-macosx_10_13_universal2.whl (1.0 MB)
Using cached macholib-1.16.3-py2.py3-none-any.whl (38 kB)
Using cached altgraph-0.17.4-py2.py3-none-any.whl (21 kB)
Using cached packaging-25.0-py3-none-any.whl (66 kB)
Using cached pyinstaller_hooks_contrib-2025.9-py3-none-any.whl (444 kB)
Installing collected packages: altgraph, packaging, macholib, pyinstaller-hooks-contrib, pyinstaller
Successfully installed altgraph-0.17.4 macholib-1.16.3 packaging-25.0 pyinstaller-6.16.0 pyinstaller-hooks-contrib-2025.9
[notice] A new release of pip is available: 24.2 -> 25.2
[notice] To update, run: pip install --upgrade pip
60 INFO: PyInstaller: 6.16.0, contrib hooks: 2025.9
60 INFO: Python: 3.13.7
71 INFO: Platform: macOS-26.0-arm64-arm-64bit-Mach-O
72 INFO: Python environment: /Users/**redacted**/nanovna-saver/macbuildenv
72 INFO: wrote /Users/**redacted**/nanovna-saver/NanoVNASaver.spec
75 INFO: Removing temporary files and cleaning cache in /Users/stevemacminn/Library/Application Support/pyinstaller
Traceback (most recent call last):
File "/opt/homebrew/Cellar/[email protected]/3.13.7/Frameworks/Python.framework/Versions/3.13/lib/python3.13/importlib/metadata/__init__.py", line 407, in from_name
return next(iter(cls.discover(name=name)))
StopIteration
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/**redacted**/nanovna-saver/macbuildenv/bin/pyinstaller", line 8, in <module>
sys.exit(_console_script_run())
~~~~~~~~~~~~~~~~~~~^^
File "/Users/**redacted**/nanovna-saver/macbuildenv/lib/python3.13/site-packages/PyInstaller/__main__.py", line 231, in _console_script_run
run()
~~~^^
File "/Users/**redacted**/nanovna-saver/macbuildenv/lib/python3.13/site-packages/PyInstaller/__main__.py", line 215, in run
run_build(pyi_config, spec_file, **vars(args))
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/**redacted**/nanovna-saver/macbuildenv/lib/python3.13/site-packages/PyInstaller/__main__.py", line 70, in run_build
PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/**redacted**/nanovna-saver/macbuildenv/lib/python3.13/site-packages/PyInstaller/building/build_main.py", line 1272, in main
build(specfile, distpath, workpath, clean_build)
~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/**redacted**/nanovna-saver/macbuildenv/lib/python3.13/site-packages/PyInstaller/building/build_main.py", line 1210, in build
exec(code, spec_namespace)
~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/Users/**redacted**/nanovna-saver/NanoVNASaver.spec", line 5, in <module>
datas += copy_metadata('NanoVNASaver', recursive=True)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/**redacted**/nanovna-saver/macbuildenv/lib/python3.13/site-packages/PyInstaller/utils/hooks/__init__.py", line 969, in copy_metadata
dist = importlib_metadata.distribution(package_name)
File "/opt/homebrew/Cellar/[email protected]/3.13.7/Frameworks/Python.framework/Versions/3.13/lib/python3.13/importlib/metadata/__init__.py", line 960, in distribution
return Distribution.from_name(distribution_name)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/[email protected]/3.13.7/Frameworks/Python.framework/Versions/3.13/lib/python3.13/importlib/metadata/__init__.py", line 409, in from_name
raise PackageNotFoundError(name)
importlib.metadata.PackageNotFoundError: No package metadata was found for NanoVNASaver
tar: NanoVNASaver.app: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors.
(nanovna_env) **redacted**@macbookair nanovna-saver %
Thanks!