Does not compile for apple silicon using pip
keixthb opened this issue · 3 comments
Build Failure Using PIP on MacOS M3 Pro
The pip install behavior of PipBERT
fails on apple silicon. PyBERT depends on the enable
package found here, and due to this issue, I do not expect that the pip install will work until this is resolved.
To Reproduce
Using Mac OS Sonoma M3-Pro:
brew install python@3.9
git clone --depth=10 https://github.com/capn-freako/PyBERT
cd PyBERT
python3.9 -m venv temp
source temp/bin/activate
pip install --upgrade pip
pip install enable
Error message
Error message
Building wheels for collected packages: enable Building wheel for enable (pyproject.toml) ... error error: subprocess-exited-with-error × Building wheel for enable (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [390 lines of output] running bdist_wheel running build running build_ext /private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-install-v460lrh7/enable_546a2205101445b09e584f9dffa888af/kiva/_cython_speedups.pyx tree = Parsing.p_module(s, pxd, full_module_name) Compiling kiva/_cython_speedups.pyx because it changed. [1/1] Cythonizing kiva/_cython_speedups.pyx building 'kiva._cython_speedups' extension creating build creating build/temp.macosx-14-arm64-cpython-39 creating build/temp.macosx-14-arm64-cpython-39/kiva clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -Ikiva -I/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/numpy/core/include -I/Users/keithhbova/Desktop/PyBERT/temp/include -I/opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/include/python3.9 -c kiva/_cython_speedups.cpp -o build/temp.macosx-14-arm64-cpython-39/kiva/_cython_speedups.o In file included from kiva/_cython_speedups.cpp:1266: In file included from /private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/numpy/core/include/numpy/arrayobject.h:4: In file included from /private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/numpy/core/include/numpy/ndarrayobject.h:12: In file included from /private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/numpy/core/include/numpy/ndarraytypes.h:1969: /private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-W#warnings] #warning "Using deprecated NumPy API, disable it with " \ ^ 1 warning generated. clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -Ikiva -I/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/numpy/core/include -I/Users/keithhbova/Desktop/PyBERT/temp/include -I/opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/include/python3.9 -c kiva/_hit_test.cpp -o build/temp.macosx-14-arm64-cpython-39/kiva/_hit_test.o creating build/lib.macosx-14-arm64-cpython-39 creating build/lib.macosx-14-arm64-cpython-39/kiva clang++ -bundle -undefined dynamic_lookup -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk build/temp.macosx-14-arm64-cpython-39/kiva/_cython_speedups.o build/temp.macosx-14-arm64-cpython-39/kiva/_hit_test.o -o build/lib.macosx-14-arm64-cpython-39/kiva/_cython_speedups.cpython-39-darwin.so /private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-install-v460lrh7/enable_546a2205101445b09e584f9dffa888af/kiva/_marker_renderer.pxd tree = Parsing.p_module(s, pxd, full_module_name) Error compiling Cython file: ------------------------------------------------------------ ... # Thanks for using Enthought open source! import cython import numpy as np from numpy cimport uint8_t cimport _marker_renderer ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:14:8: '_marker_renderer.pxd' not found Error compiling Cython file: ------------------------------------------------------------ ... import numpy as np from numpy cimport uint8_t cimport _marker_renderer ctypedef _marker_renderer.marker_renderer_base renderer_base_t ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:16:9: 'marker_renderer_base' is not a type identifier Error compiling Cython file: ------------------------------------------------------------ ... self._this.transform(_sx, _sy, _shx, _shy, _tx, _ty) # Template specializations ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_abgr32] renderer_abgr32_t ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:91:9: 'marker_renderer' is not a type identifier Error compiling Cython file: ------------------------------------------------------------ ... self._this.transform(_sx, _sy, _shx, _shy, _tx, _ty) # Template specializations ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_abgr32] renderer_abgr32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_argb32] renderer_argb32_t ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:92:9: 'marker_renderer' is not a type identifier Error compiling Cython file: ------------------------------------------------------------ ... # Template specializations ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_abgr32] renderer_abgr32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_argb32] renderer_argb32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_bgra32] renderer_bgra32_t ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:93:9: 'marker_renderer' is not a type identifier Error compiling Cython file: ------------------------------------------------------------ ... # Template specializations ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_abgr32] renderer_abgr32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_argb32] renderer_argb32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_bgra32] renderer_bgra32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_rgba32] renderer_rgba32_t ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:94:9: 'marker_renderer' is not a type identifier Error compiling Cython file: ------------------------------------------------------------ ... # Template specializations ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_abgr32] renderer_abgr32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_argb32] renderer_argb32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_bgra32] renderer_bgra32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_rgba32] renderer_rgba32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_bgr24] renderer_bgr24_t ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:95:9: 'marker_renderer' is not a type identifier Error compiling Cython file: ------------------------------------------------------------ ... ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_abgr32] renderer_abgr32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_argb32] renderer_argb32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_bgra32] renderer_bgra32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_rgba32] renderer_rgba32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_bgr24] renderer_bgr24_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_rgb24] renderer_rgb24_t ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:96:9: 'marker_renderer' is not a type identifier Error compiling Cython file: ------------------------------------------------------------ ... cdef: double[:,::1] _points = np.asarray(points, dtype=np.float64, order='c') double[::1] _fill = np.asarray(fill, dtype=np.float64, order='c') double[::1] _stroke = np.asarray(stroke, dtype=np.float64, order='c') unsigned _size = size _marker_renderer.marker_type _marker = <_marker_renderer.marker_type>marker ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:51:12: 'marker_type' is not a type identifier Error compiling Cython file: ------------------------------------------------------------ ... cdef class MarkerRendererBase: cdef renderer_base_t* _this cdef object py_array def __dealloc__(self): del self._this ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:24:16: Deletion of non-Python, non-C++ object Error compiling Cython file: ------------------------------------------------------------ ... cdef: double[:,::1] _points = np.asarray(points, dtype=np.float64, order='c') double[::1] _fill = np.asarray(fill, dtype=np.float64, order='c') double[::1] _stroke = np.asarray(stroke, dtype=np.float64, order='c') unsigned _size = size _marker_renderer.marker_type _marker = <_marker_renderer.marker_type>marker ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:51:52: 'marker_type' is not a type identifier Error compiling Cython file: ------------------------------------------------------------ ... raise ValueError(msg) if _fill.shape[0] != 4: msg = "fill argument must be an iterable of 4 numbers." raise ValueError(msg) return self._this.draw_markers( ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:63:19: Cannot convert 'renderer_base_t *' to Python object Error compiling Cython file: ------------------------------------------------------------ ... if _fill.shape[0] != 4: msg = "fill argument must be an iterable of 4 numbers." raise ValueError(msg) return self._this.draw_markers( &_points[0][0], _points.shape[0], _size, _marker, ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:64:12: Cannot convert 'double *' to Python object Error compiling Cython file: ------------------------------------------------------------ ... msg = "fill argument must be an iterable of 4 numbers." raise ValueError(msg) return self._this.draw_markers( &_points[0][0], _points.shape[0], _size, _marker, &_fill[0], &_stroke[0] ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:65:12: Cannot convert 'double *' to Python object Error compiling Cython file: ------------------------------------------------------------ ... msg = "fill argument must be an iterable of 4 numbers." raise ValueError(msg) return self._this.draw_markers( &_points[0][0], _points.shape[0], _size, _marker, &_fill[0], &_stroke[0] ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:65:23: Cannot convert 'double *' to Python object Error compiling Cython file: ------------------------------------------------------------ ... double _shx = shx double _shy = shy double _tx = tx double _ty = ty self._this.transform(_sx, _sy, _shx, _shy, _tx, _ty) ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:87:12: Cannot convert 'renderer_base_t *' to Python object Error compiling Cython file: ------------------------------------------------------------ ... ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_rgb24] renderer_rgb24_t cdef class MarkerRendererABGR32(MarkerRendererBase): def __cinit__(self, uint8_t[:,:,::1] image, bottom_up=True): self.base_init(image) self._this = new renderer_abgr32_t( ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:101:40: new operator can only be applied to a C++ class Error compiling Cython file: ------------------------------------------------------------ ... ) cdef class MarkerRendererARGB32(MarkerRendererBase): def __cinit__(self, uint8_t[:,:,::1] image, bottom_up=True): self.base_init(image) self._this = new renderer_argb32_t( ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:108:40: new operator can only be applied to a C++ class Error compiling Cython file: ------------------------------------------------------------ ... ) cdef class MarkerRendererBGRA32(MarkerRendererBase): def __cinit__(self, uint8_t[:,:,::1] image, bottom_up=True): self.base_init(image) self._this = new renderer_bgra32_t( ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:115:40: new operator can only be applied to a C++ class Error compiling Cython file: ------------------------------------------------------------ ... ) cdef class MarkerRendererRGBA32(MarkerRendererBase): def __cinit__(self, uint8_t[:,:,::1] image, bottom_up=True): self.base_init(image) self._this = new renderer_rgba32_t( ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:122:40: new operator can only be applied to a C++ class Error compiling Cython file: ------------------------------------------------------------ ... ) cdef class MarkerRendererBGR24(MarkerRendererBase): def __cinit__(self, uint8_t[:,:,::1] image, bottom_up=True): self.base_init(image) self._this = new renderer_bgr24_t( ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:129:40: new operator can only be applied to a C++ class Error compiling Cython file: ------------------------------------------------------------ ... ) cdef class MarkerRendererRGB24(MarkerRendererBase): def __cinit__(self, uint8_t[:,:,::1] image, bottom_up=True): self.base_init(image) self._this = new renderer_rgb24_t( ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:136:40: new operator can only be applied to a C++ class Compiling kiva/_marker_renderer.pyx because it changed. [1/1] Cythonizing kiva/_marker_renderer.pyx Traceback (most recent call last): File "/Users/keithhbova/Desktop/PyBERT/temp/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in main() File "/Users/keithhbova/Desktop/PyBERT/temp/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main json_out['return_val'] = hook(**hook_input['kwargs']) File "/Users/keithhbova/Desktop/PyBERT/temp/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 261, in build_wheel return _build_backend().build_wheel(wheel_directory, config_settings, File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 410, in build_wheel return self._build_with_temp_dir( File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 395, in _build_with_temp_dir self.run_setup() File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 311, in run_setup exec(code, locals()) File "", line 382, in File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/setuptools/__init__.py", line 103, in setup return distutils.core.setup(**attrs) File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 184, in setup return run_commands(dist) File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 200, in run_commands dist.run_commands() File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands self.run_command(cmd) File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 968, in run_command super().run_command(command) File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/wheel/bdist_wheel.py", line 368, in run self.run_command("build") File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 316, in run_command self.distribution.run_command(command) File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 968, in run_command super().run_command(command) File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "", line 42, in run File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 316, in run_command self.distribution.run_command(command) File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 968, in run_command super().run_command(command) File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 359, in run self.build_extensions() File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 479, in build_extensions self._build_extensions_serial() File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 505, in _build_extensions_serial self.build_extension(ext) File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/Cython/Distutils/build_ext.py", line 130, in build_extension new_ext = cythonize( File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/Cython/Build/Dependencies.py", line 1154, in cythonize cythonize_one(*args) File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-jra5vjcf/overlay/lib/python3.9/site-packages/Cython/Build/Dependencies.py", line 1321, in cythonize_one raise CompileError(None, pyx_file) Cython.Compiler.Errors.CompileError: kiva/_marker_renderer.pyx [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for enable Failed to build enable ERROR: Could not build wheels for enable, which is required to install pyproject.toml-based projects
Expected behavior
The install works fine using RHEL 9.4 and python3.9 on an x86 processor:
Requirements.txt on RHEL 9.4
Contents of pip freeze -r >& requirements.txt
Requirements
alabaster==0.7.16 astroid==3.2.2 autoflake==2.3.1 Babel==2.15.0 black==24.4.2 cachetools==5.3.3 certifi==2024.2.2 cfgv==3.4.0 chaco==6.0.0 chardet==5.2.0 charset-normalizer==3.3.2 click==8.1.7 colorama==0.4.6 contourpy==1.2.1 coverage==7.5.1 cycler==0.12.1 dill==0.3.8 distlib==0.3.8 docutils==0.21.2 empy==4.1 enable==6.0.0 exceptiongroup==1.2.1 execnet==2.1.1 filelock==3.14.0 fonttools==4.51.0 identify==2.5.36 idna==3.7 imagesize==1.4.1 importlib_metadata==7.1.0 importlib_resources==6.4.0 iniconfig==2.0.0 isort==5.13.2 Jinja2==3.1.4 kiwisolver==1.4.5 m2r==0.3.1 MarkupSafe==2.1.5 matplotlib==3.9.0 mccabe==0.7.0 mistune==0.8.4 mypy==1.10.0 mypy-extensions==1.0.0 nodeenv==1.8.0 numpy==1.25.2 packaging==24.0 pandas==2.2.2 parsec==3.15 pathspec==0.12.1 pillow==10.3.0 PipBERT==4.1.0 platformdirs==4.2.2 pluggy==1.5.0 pre-commit==3.7.1 pyface==8.0.0 pyflakes==3.2.0 Pygments==2.18.0 PyIBIS-AMI==5.1.4 pylint==3.2.2 pyparsing==3.1.2 pyproject-api==1.6.1 PySide2==5.15.2.1 pytest==8.2.1 pytest-cov==5.0.0 pytest-xdist==3.6.1 python-dateutil==2.9.0.post0 pytz==2024.1 PyYAML==6.0.1 requests==2.32.2 scikit-rf==1.0.0 scipy==1.13.0 shiboken2==5.15.2.1 six==1.16.0 snowballstemmer==2.2.0 Sphinx==7.3.7 sphinxcontrib-applehelp==1.0.8 sphinxcontrib-devhelp==1.0.6 sphinxcontrib-htmlhelp==2.0.5 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.7 sphinxcontrib-serializinghtml==1.1.10 tomli==2.0.1 tomlkit==0.12.5 tox==4.15.0 traits==6.4.3 traitsui==8.0.0 types-PyYAML==6.0.12.20240311 typing_extensions==4.11.0 tzdata==2024.1 urllib3==2.2.1 virtualenv==20.26.2 zipp==3.18.2
Results
Code appears to work fine in rhel otherwise:
Additional Information
You may be able to resolve this issue with enable
on apple silicon by using anaconda, but I have not tested it myself.
Hi @keixthb ,
Would you, please, give the latest installation instructions a try and let me know what happens?
Thanks!
-db
@capn-freako Using python3.12, the result of pip install enable
is the same (and still fails), with:
Error message
pip install enable Collecting enable Using cached enable-6.0.0.tar.gz (2.9 MB) Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Collecting numpy (from enable) Downloading numpy-2.0.0-cp312-cp312-macosx_14_0_arm64.whl.metadata (60 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.9/60.9 kB 950.6 kB/s eta 0:00:00 Collecting pillow (from enable) Using cached pillow-10.3.0-cp312-cp312-macosx_11_0_arm64.whl.metadata (9.2 kB) Collecting traits>=6.2.0 (from enable) Downloading traits-6.4.3-cp312-cp312-macosx_10_9_universal2.whl.metadata (5.0 kB) Collecting traitsui (from enable) Using cached traitsui-8.0.0-py3-none-any.whl.metadata (6.8 kB) Collecting pyface>=7.2.0 (from enable) Using cached pyface-8.0.0-py3-none-any.whl.metadata (7.7 kB) Collecting fonttools (from enable) Using cached fonttools-4.53.0-cp312-cp312-macosx_11_0_arm64.whl.metadata (162 kB) Using cached pyface-8.0.0-py3-none-any.whl (1.3 MB) Downloading traits-6.4.3-cp312-cp312-macosx_10_9_universal2.whl (5.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.0/5.0 MB 8.8 MB/s eta 0:00:00 Using cached fonttools-4.53.0-cp312-cp312-macosx_11_0_arm64.whl (2.2 MB) Downloading numpy-2.0.0-cp312-cp312-macosx_14_0_arm64.whl (5.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.0/5.0 MB 10.1 MB/s eta 0:00:00 Using cached pillow-10.3.0-cp312-cp312-macosx_11_0_arm64.whl (3.4 MB) Using cached traitsui-8.0.0-py3-none-any.whl (1.5 MB) Building wheels for collected packages: enable Building wheel for enable (pyproject.toml) ... error error: subprocess-exited-with-error × Building wheel for enable (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [399 lines of output] running bdist_wheel running build running build_ext /private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-install-hs1cgd4f/enable_363a329928cc4367ab1ff46e5d4774dd/kiva/_cython_speedups.pyx tree = Parsing.p_module(s, pxd, full_module_name) Compiling kiva/_cython_speedups.pyx because it changed. [1/1] Cythonizing kiva/_cython_speedups.pyx building 'kiva._cython_speedups' extension creating build creating build/temp.macosx-14.0-arm64-cpython-312 creating build/temp.macosx-14.0-arm64-cpython-312/kiva clang -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -Ikiva -I/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/numpy/core/include -I/Users/keithhbova/Desktop/temp/temp/include -I/opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12 -c kiva/_cython_speedups.cpp -o build/temp.macosx-14.0-arm64-cpython-312/kiva/_cython_speedups.o In file included from kiva/_cython_speedups.cpp:1266: In file included from /private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/numpy/core/include/numpy/arrayobject.h:5: In file included from /private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/numpy/core/include/numpy/ndarrayobject.h:12: In file included from /private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/numpy/core/include/numpy/ndarraytypes.h:1929: /private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-W#warnings] #warning "Using deprecated NumPy API, disable it with " \ ^ kiva/_cython_speedups.cpp:24411:13: warning: code will never be executed [-Wunreachable-code] goto bad; ^~~~~~~~ 2 warnings generated. clang -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -Ikiva -I/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/numpy/core/include -I/Users/keithhbova/Desktop/temp/temp/include -I/opt/homebrew/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12 -c kiva/_hit_test.cpp -o build/temp.macosx-14.0-arm64-cpython-312/kiva/_hit_test.o creating build/lib.macosx-14.0-arm64-cpython-312 creating build/lib.macosx-14.0-arm64-cpython-312/kiva clang++ -bundle -undefined dynamic_lookup -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk build/temp.macosx-14.0-arm64-cpython-312/kiva/_cython_speedups.o build/temp.macosx-14.0-arm64-cpython-312/kiva/_hit_test.o -o build/lib.macosx-14.0-arm64-cpython-312/kiva/_cython_speedups.cpython-312-darwin.so /private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-install-hs1cgd4f/enable_363a329928cc4367ab1ff46e5d4774dd/kiva/_marker_renderer.pxd tree = Parsing.p_module(s, pxd, full_module_name) Error compiling Cython file: ------------------------------------------------------------ ... # Thanks for using Enthought open source! import cython import numpy as np from numpy cimport uint8_t cimport _marker_renderer ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:14:8: '_marker_renderer.pxd' not found Error compiling Cython file: ------------------------------------------------------------ ... import numpy as np from numpy cimport uint8_t cimport _marker_renderer ctypedef _marker_renderer.marker_renderer_base renderer_base_t ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:16:9: 'marker_renderer_base' is not a type identifier Error compiling Cython file: ------------------------------------------------------------ ... self._this.transform(_sx, _sy, _shx, _shy, _tx, _ty) # Template specializations ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_abgr32] renderer_abgr32_t ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:91:9: 'marker_renderer' is not a type identifier Error compiling Cython file: ------------------------------------------------------------ ... self._this.transform(_sx, _sy, _shx, _shy, _tx, _ty) # Template specializations ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_abgr32] renderer_abgr32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_argb32] renderer_argb32_t ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:92:9: 'marker_renderer' is not a type identifier Error compiling Cython file: ------------------------------------------------------------ ... # Template specializations ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_abgr32] renderer_abgr32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_argb32] renderer_argb32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_bgra32] renderer_bgra32_t ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:93:9: 'marker_renderer' is not a type identifier Error compiling Cython file: ------------------------------------------------------------ ... # Template specializations ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_abgr32] renderer_abgr32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_argb32] renderer_argb32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_bgra32] renderer_bgra32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_rgba32] renderer_rgba32_t ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:94:9: 'marker_renderer' is not a type identifier Error compiling Cython file: ------------------------------------------------------------ ... # Template specializations ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_abgr32] renderer_abgr32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_argb32] renderer_argb32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_bgra32] renderer_bgra32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_rgba32] renderer_rgba32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_bgr24] renderer_bgr24_t ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:95:9: 'marker_renderer' is not a type identifier Error compiling Cython file: ------------------------------------------------------------ ... ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_abgr32] renderer_abgr32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_argb32] renderer_argb32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_bgra32] renderer_bgra32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_rgba32] renderer_rgba32_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_bgr24] renderer_bgr24_t ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_rgb24] renderer_rgb24_t ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:96:9: 'marker_renderer' is not a type identifier Error compiling Cython file: ------------------------------------------------------------ ... cdef: double[:,::1] _points = np.asarray(points, dtype=np.float64, order='c') double[::1] _fill = np.asarray(fill, dtype=np.float64, order='c') double[::1] _stroke = np.asarray(stroke, dtype=np.float64, order='c') unsigned _size = size _marker_renderer.marker_type _marker = <_marker_renderer.marker_type>marker ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:51:12: 'marker_type' is not a type identifier Error compiling Cython file: ------------------------------------------------------------ ... cdef class MarkerRendererBase: cdef renderer_base_t* _this cdef object py_array def __dealloc__(self): del self._this ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:24:16: Deletion of non-Python, non-C++ object Error compiling Cython file: ------------------------------------------------------------ ... cdef: double[:,::1] _points = np.asarray(points, dtype=np.float64, order='c') double[::1] _fill = np.asarray(fill, dtype=np.float64, order='c') double[::1] _stroke = np.asarray(stroke, dtype=np.float64, order='c') unsigned _size = size _marker_renderer.marker_type _marker = <_marker_renderer.marker_type>marker ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:51:52: 'marker_type' is not a type identifier Error compiling Cython file: ------------------------------------------------------------ ... raise ValueError(msg) if _fill.shape[0] != 4: msg = "fill argument must be an iterable of 4 numbers." raise ValueError(msg) return self._this.draw_markers( ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:63:19: Cannot convert 'renderer_base_t *' to Python object Error compiling Cython file: ------------------------------------------------------------ ... if _fill.shape[0] != 4: msg = "fill argument must be an iterable of 4 numbers." raise ValueError(msg) return self._this.draw_markers( &_points[0][0], _points.shape[0], _size, _marker, ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:64:12: Cannot convert 'double *' to Python object Error compiling Cython file: ------------------------------------------------------------ ... msg = "fill argument must be an iterable of 4 numbers." raise ValueError(msg) return self._this.draw_markers( &_points[0][0], _points.shape[0], _size, _marker, &_fill[0], &_stroke[0] ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:65:12: Cannot convert 'double *' to Python object Error compiling Cython file: ------------------------------------------------------------ ... msg = "fill argument must be an iterable of 4 numbers." raise ValueError(msg) return self._this.draw_markers( &_points[0][0], _points.shape[0], _size, _marker, &_fill[0], &_stroke[0] ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:65:23: Cannot convert 'double *' to Python object Error compiling Cython file: ------------------------------------------------------------ ... double _shx = shx double _shy = shy double _tx = tx double _ty = ty self._this.transform(_sx, _sy, _shx, _shy, _tx, _ty) ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:87:12: Cannot convert 'renderer_base_t *' to Python object Error compiling Cython file: ------------------------------------------------------------ ... ctypedef _marker_renderer.marker_renderer[_marker_renderer.pixfmt_rgb24] renderer_rgb24_t cdef class MarkerRendererABGR32(MarkerRendererBase): def __cinit__(self, uint8_t[:,:,::1] image, bottom_up=True): self.base_init(image) self._this = new renderer_abgr32_t( ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:101:40: new operator can only be applied to a C++ class Error compiling Cython file: ------------------------------------------------------------ ... ) cdef class MarkerRendererARGB32(MarkerRendererBase): def __cinit__(self, uint8_t[:,:,::1] image, bottom_up=True): self.base_init(image) self._this = new renderer_argb32_t( ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:108:40: new operator can only be applied to a C++ class Error compiling Cython file: ------------------------------------------------------------ ... ) cdef class MarkerRendererBGRA32(MarkerRendererBase): def __cinit__(self, uint8_t[:,:,::1] image, bottom_up=True): self.base_init(image) self._this = new renderer_bgra32_t( ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:115:40: new operator can only be applied to a C++ class Error compiling Cython file: ------------------------------------------------------------ ... ) cdef class MarkerRendererRGBA32(MarkerRendererBase): def __cinit__(self, uint8_t[:,:,::1] image, bottom_up=True): self.base_init(image) self._this = new renderer_rgba32_t( ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:122:40: new operator can only be applied to a C++ class Error compiling Cython file: ------------------------------------------------------------ ... ) cdef class MarkerRendererBGR24(MarkerRendererBase): def __cinit__(self, uint8_t[:,:,::1] image, bottom_up=True): self.base_init(image) self._this = new renderer_bgr24_t( ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:129:40: new operator can only be applied to a C++ class Error compiling Cython file: ------------------------------------------------------------ ... ) cdef class MarkerRendererRGB24(MarkerRendererBase): def __cinit__(self, uint8_t[:,:,::1] image, bottom_up=True): self.base_init(image) self._this = new renderer_rgb24_t( ^ ------------------------------------------------------------ kiva/_marker_renderer.pyx:136:40: new operator can only be applied to a C++ class Compiling kiva/_marker_renderer.pyx because it changed. [1/1] Cythonizing kiva/_marker_renderer.pyx Traceback (most recent call last): File "/Users/keithhbova/Desktop/temp/temp/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in main() File "/Users/keithhbova/Desktop/temp/temp/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main json_out['return_val'] = hook(**hook_input['kwargs']) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/keithhbova/Desktop/temp/temp/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel return _build_backend().build_wheel(wheel_directory, config_settings, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 410, in build_wheel return self._build_with_temp_dir( ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 395, in _build_with_temp_dir self.run_setup() File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 311, in run_setup exec(code, locals()) File "", line 382, in File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/setuptools/__init__.py", line 103, in setup return distutils.core.setup(**attrs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 184, in setup return run_commands(dist) ^^^^^^^^^^^^^^^^^^ File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 200, in run_commands dist.run_commands() File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands self.run_command(cmd) File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 968, in run_command super().run_command(command) File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/wheel/bdist_wheel.py", line 368, in run self.run_command("build") File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 316, in run_command self.distribution.run_command(command) File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 968, in run_command super().run_command(command) File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "", line 42, in run File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 316, in run_command self.distribution.run_command(command) File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 968, in run_command super().run_command(command) File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 359, in run self.build_extensions() File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 479, in build_extensions self._build_extensions_serial() File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 505, in _build_extensions_serial self.build_extension(ext) File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/Cython/Distutils/build_ext.py", line 130, in build_extension new_ext = cythonize( ^^^^^^^^^^ File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/Cython/Build/Dependencies.py", line 1154, in cythonize cythonize_one(*args) File "/private/var/folders/g8/zyb92nd97sqf8x7py60g9fc00000gn/T/pip-build-env-mqi44fb_/overlay/lib/python3.12/site-packages/Cython/Build/Dependencies.py", line 1321, in cythonize_one raise CompileError(None, pyx_file) Cython.Compiler.Errors.CompileError: kiva/_marker_renderer.pyx [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for enable Failed to build enable ERROR: Could not build wheels for enable, which is required to install pyproject.toml-based projects
... However, following the new instructions, I am able to successfully install pipbert
with no issues. For me, this:
python3.12 -m venv temp
source temp/bin/activate
pip install --upgrade pip
pip install https://github.com/capn-freako/PyBERT/raw/master/deps/enable-6.1.0.dev0-cp312-cp312-macosx_12_0_arm64.whl
pip install https://github.com/capn-freako/PyBERT/raw/master/deps/chaco-6.0.0-cp312-cp312-macosx_12_0_arm64.whl
pip install PipBERT
pybert
produces the following:
My only change to your instructions would be to add the pip install --upgrade pip
before installing packages, but otherwise, looks good! I can try to get it built on rhel 9.4 using python3.12 (x86_64 and aarch64) sometime this week and post the results.
Great! Thank you for your perseverance. :)