ghdl icon indicating copy to clipboard operation
ghdl copied to clipboard

pyGHDL fails to build: ValueError: No distribution was found. Ensure that `setup.py` is not empty and that it calls `setup()`

Open yurivict opened this issue 5 months ago • 1 comments

Description I am attempting to build for pyGHDL, but this error occurs:

===>  Building for ghdl-4.1.0
cd /usr/ports/cad/py-pyghdl/work-py311/ghdl-4.1.0 && /usr/bin/env -i HOME=/usr/ports/cad/py-pyghdl/work-py311  PWD="${PWD}"  __MAKE_CONF=/nonexistent OSVERSION=1401500 PATH=/usr/local/libexec/ccache:/usr/ports/cad/py-pyghdl/work-py311/.bin:/home/yuri/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin TERM=xterm-256color XDG_DATA_HOME=/usr/ports/cad/py-pyghdl/work-py311  XDG_CONFIG_HOME=/usr/ports/cad/py-pyghdl/work-py311  XDG_CACHE_HOME=/usr/ports/cad/py-pyghdl/work-py311/.cache  HOME=/usr/ports/cad/py-pyghdl/work-py311 PATH=/usr/local/libexec/ccache:/usr/ports/cad/py-pyghdl/work-py311/.bin:/home/yuri/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin PKG_CONFIG_LIBDIR=/usr/ports/cad/py-pyghdl/work-py311/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig MK_DEBUG_FILES=no MK_KERNEL_SYMBOLS=no SHELL=/bin/sh NO_LINT=YES PREFIX=/usr/local  LOCALBASE=/usr/local  CC="cc" CFLAGS="-O2 -pipe  -fstack-protector-strong -fno-strict-aliasing "  CPP="cpp" CPPFLAGS=""  LDFLAGS=" -fstack-protector-strong " LIBS=""  CXX="c++" CXXFLAGS="-O2 -pipe -fstack-protector-strong -fno-strict-aliasing  " CCACHE_DIR="/tmp/.ccache" BSD_INSTALL_PROGRAM="install  -s -m 555"  BSD_INSTALL_LIB="install  -s -m 0644"  BSD_INSTALL_SCRIPT="install  -m 555"  BSD_INSTALL_DATA="install  -m 0644"  BSD_INSTALL_MAN="install  -m 444" /usr/local/bin/python3.11 -m build --no-isolation --wheel 
* Getting build dependencies for wheel...
[pyTooling.Packaging] Extracting requirements from 'pyGHDL/requirements.txt'.
[pyTooling.Packaging]   Extracting requirements from 'pyGHDL/libghdl/requirements.txt'.
[pyTooling.Packaging]   - pyTooling>=4.0.1
[pyTooling.Packaging]   Extracting requirements from 'pyGHDL/dom/requirements.txt'.
[pyTooling.Packaging]     Extracting requirements from 'pyGHDL/dom/../libghdl/requirements.txt'.
[pyTooling.Packaging]     - pyTooling>=4.0.1
[pyTooling.Packaging]   - pyVHDLModel==0.25.1
[pyTooling.Packaging]   Extracting requirements from 'pyGHDL/lsp/requirements.txt'.
[pyTooling.Packaging]     Extracting requirements from 'pyGHDL/lsp/../libghdl/requirements.txt'.
[pyTooling.Packaging]     - pyTooling>=4.0.1
[pyTooling.Packaging]   Extracting requirements from 'pyGHDL/cli/requirements.txt'.
[pyTooling.Packaging]     Extracting requirements from 'pyGHDL/cli/../dom/requirements.txt'.
[pyTooling.Packaging]       Extracting requirements from 'pyGHDL/cli/../dom/../libghdl/requirements.txt'.
[pyTooling.Packaging]       - pyTooling>=4.0.1
[pyTooling.Packaging]     - pyVHDLModel==0.25.1
[pyTooling.Packaging]   - pyTooling>=4.0.1, <5.0
[pyTooling.Packaging]   - pyAttributes>=2.3.2
[pyTooling.Packaging] Extracting requirements from 'doc/requirements.txt'.
[pyTooling.Packaging]   Extracting requirements from 'doc/../pyGHDL/requirements.txt'.
[pyTooling.Packaging]     Extracting requirements from 'doc/../pyGHDL/libghdl/requirements.txt'.
[pyTooling.Packaging]     - pyTooling>=4.0.1
[pyTooling.Packaging]     Extracting requirements from 'doc/../pyGHDL/dom/requirements.txt'.
[pyTooling.Packaging]       Extracting requirements from 'doc/../pyGHDL/dom/../libghdl/requirements.txt'.
[pyTooling.Packaging]       - pyTooling>=4.0.1
[pyTooling.Packaging]     - pyVHDLModel==0.25.1
[pyTooling.Packaging]     Extracting requirements from 'doc/../pyGHDL/lsp/requirements.txt'.
[pyTooling.Packaging]       Extracting requirements from 'doc/../pyGHDL/lsp/../libghdl/requirements.txt'.
[pyTooling.Packaging]       - pyTooling>=4.0.1
[pyTooling.Packaging]     Extracting requirements from 'doc/../pyGHDL/cli/requirements.txt'.
[pyTooling.Packaging]       Extracting requirements from 'doc/../pyGHDL/cli/../dom/requirements.txt'.
[pyTooling.Packaging]         Extracting requirements from 'doc/../pyGHDL/cli/../dom/../libghdl/requirements.txt'.
[pyTooling.Packaging]         - pyTooling>=4.0.1
[pyTooling.Packaging]       - pyVHDLModel==0.25.1
[pyTooling.Packaging]     - pyTooling>=4.0.1, <5.0
[pyTooling.Packaging]     - pyAttributes>=2.3.2
[pyTooling.Packaging] - sphinx
[pyTooling.Packaging] - python-dateutil>=2.8.2
[pyTooling.Packaging] - autoapi>=2.0.1
[pyTooling.Packaging] - myst-parser
[pyTooling.Packaging] - sphinx_fontawesome>=0.0.6
[pyTooling.Packaging] - sphinx_autodoc_typehints>=1.19.5
[pyTooling.Packaging] - furo
[pyTooling.Packaging] - btd.sphinx.autoprogram>=0.1.7.post1
* Building wheel...
[pyTooling.Packaging] Extracting requirements from 'pyGHDL/requirements.txt'.
[pyTooling.Packaging]   Extracting requirements from 'pyGHDL/libghdl/requirements.txt'.
[pyTooling.Packaging]   - pyTooling>=4.0.1
[pyTooling.Packaging]   Extracting requirements from 'pyGHDL/dom/requirements.txt'.
[pyTooling.Packaging]     Extracting requirements from 'pyGHDL/dom/../libghdl/requirements.txt'.
[pyTooling.Packaging]     - pyTooling>=4.0.1
[pyTooling.Packaging]   - pyVHDLModel==0.25.1
[pyTooling.Packaging]   Extracting requirements from 'pyGHDL/lsp/requirements.txt'.
[pyTooling.Packaging]     Extracting requirements from 'pyGHDL/lsp/../libghdl/requirements.txt'.
[pyTooling.Packaging]     - pyTooling>=4.0.1
[pyTooling.Packaging]   Extracting requirements from 'pyGHDL/cli/requirements.txt'.
[pyTooling.Packaging]     Extracting requirements from 'pyGHDL/cli/../dom/requirements.txt'.
[pyTooling.Packaging]       Extracting requirements from 'pyGHDL/cli/../dom/../libghdl/requirements.txt'.
[pyTooling.Packaging]       - pyTooling>=4.0.1
[pyTooling.Packaging]     - pyVHDLModel==0.25.1
[pyTooling.Packaging]   - pyTooling>=4.0.1, <5.0
[pyTooling.Packaging]   - pyAttributes>=2.3.2
[pyTooling.Packaging] Extracting requirements from 'doc/requirements.txt'.
[pyTooling.Packaging]   Extracting requirements from 'doc/../pyGHDL/requirements.txt'.
[pyTooling.Packaging]     Extracting requirements from 'doc/../pyGHDL/libghdl/requirements.txt'.
[pyTooling.Packaging]     - pyTooling>=4.0.1
[pyTooling.Packaging]     Extracting requirements from 'doc/../pyGHDL/dom/requirements.txt'.
[pyTooling.Packaging]       Extracting requirements from 'doc/../pyGHDL/dom/../libghdl/requirements.txt'.
[pyTooling.Packaging]       - pyTooling>=4.0.1
[pyTooling.Packaging]     - pyVHDLModel==0.25.1
[pyTooling.Packaging]     Extracting requirements from 'doc/../pyGHDL/lsp/requirements.txt'.
[pyTooling.Packaging]       Extracting requirements from 'doc/../pyGHDL/lsp/../libghdl/requirements.txt'.
[pyTooling.Packaging]       - pyTooling>=4.0.1
[pyTooling.Packaging]     Extracting requirements from 'doc/../pyGHDL/cli/requirements.txt'.
[pyTooling.Packaging]       Extracting requirements from 'doc/../pyGHDL/cli/../dom/requirements.txt'.
[pyTooling.Packaging]         Extracting requirements from 'doc/../pyGHDL/cli/../dom/../libghdl/requirements.txt'.
[pyTooling.Packaging]         - pyTooling>=4.0.1
[pyTooling.Packaging]       - pyVHDLModel==0.25.1
[pyTooling.Packaging]     - pyTooling>=4.0.1, <5.0
[pyTooling.Packaging]     - pyAttributes>=2.3.2
[pyTooling.Packaging] - sphinx
[pyTooling.Packaging] - python-dateutil>=2.8.2
[pyTooling.Packaging] - autoapi>=2.0.1
[pyTooling.Packaging] - myst-parser
[pyTooling.Packaging] - sphinx_fontawesome>=0.0.6
[pyTooling.Packaging] - sphinx_autodoc_typehints>=1.19.5
[pyTooling.Packaging] - furo
[pyTooling.Packaging] - btd.sphinx.autoprogram>=0.1.7.post1
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/setuptools/build_meta.py", line 107, in _file_with_extension
    file, = matching
    ^^^^^
ValueError: not enough values to unpack (expected 1, got 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/pyproject_hooks/_in_process/_in_process.py", line 380, in <module>
    main()
  File "/usr/local/lib/python3.11/site-packages/pyproject_hooks/_in_process/_in_process.py", line 364, in main
    json_out["return_val"] = hook(**hook_input["kwargs"])
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pyproject_hooks/_in_process/_in_process.py", line 278, in build_wheel
    return _build_backend().build_wheel(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/setuptools/build_meta.py", line 244, in build_wheel
    return self._build_with_temp_dir(['bdist_wheel'], '.whl',
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/setuptools/build_meta.py", line 231, in _build_with_temp_dir
    result_basename = _file_with_extension(
                      ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/setuptools/build_meta.py", line 109, in _file_with_extension
    raise ValueError(
ValueError: No distribution was found. Ensure that `setup.py` is not empty and that it calls `setup()`.

ERROR Backend subprocess exited when trying to invoke build_wheel
*** Error code 1

It appears that the setup.py and pyproject.toml files should be in the pyGHDL folder. In general, it's best to have pyGHDL as a separate project (or directory) that should be buildable using the standard Python tools once the ghdl package is installed.

Context

  • OS: FreeBSD 14.1

Additional context Building within the FreeBSD ports framework using the Python's build module that uses pyptoject.toml

yurivict avatar Sep 23 '24 04:09 yurivict