2025-09-07T21:56:16,804 Created temporary directory: /tmp/pip-build-tracker-fpdek6kn 2025-09-07T21:56:16,804 Initialized build tracking at /tmp/pip-build-tracker-fpdek6kn 2025-09-07T21:56:16,805 Created build tracker: /tmp/pip-build-tracker-fpdek6kn 2025-09-07T21:56:16,805 Entered build tracker: /tmp/pip-build-tracker-fpdek6kn 2025-09-07T21:56:16,805 Created temporary directory: /tmp/pip-wheel-y9283qdr 2025-09-07T21:56:16,808 Created temporary directory: /tmp/pip-ephem-wheel-cache-kd05oso3 2025-09-07T21:56:16,865 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2025-09-07T21:56:16,868 2 location(s) to search for versions of quaternion-algebra: 2025-09-07T21:56:16,868 * https://pypi.org/simple/quaternion-algebra/ 2025-09-07T21:56:16,868 * https://www.piwheels.org/simple/quaternion-algebra/ 2025-09-07T21:56:16,868 Fetching project page and analyzing links: https://pypi.org/simple/quaternion-algebra/ 2025-09-07T21:56:16,868 Getting page https://pypi.org/simple/quaternion-algebra/ 2025-09-07T21:56:16,869 Found index url https://pypi.org/simple/ 2025-09-07T21:56:17,019 Fetched page https://pypi.org/simple/quaternion-algebra/ as application/vnd.pypi.simple.v1+json 2025-09-07T21:56:17,021 Found link https://files.pythonhosted.org/packages/5a/32/76c60f33820b5ad6bb1947037f07099f63e9201803b1d04e8316f9d46a06/quaternion-algebra-1.0.tar.gz (from https://pypi.org/simple/quaternion-algebra/), version: 1.0 2025-09-07T21:56:17,021 Found link https://files.pythonhosted.org/packages/fa/8c/33aae81422632d8d878103dddd6508d832136ac1b58a9b4ae02c79f3face/quaternion-algebra-1.0.1.tar.gz (from https://pypi.org/simple/quaternion-algebra/), version: 1.0.1 2025-09-07T21:56:17,022 Fetching project page and analyzing links: https://www.piwheels.org/simple/quaternion-algebra/ 2025-09-07T21:56:17,022 Getting page https://www.piwheels.org/simple/quaternion-algebra/ 2025-09-07T21:56:17,024 Found index url https://www.piwheels.org/simple/ 2025-09-07T21:56:17,151 Fetched page https://www.piwheels.org/simple/quaternion-algebra/ as text/html 2025-09-07T21:56:17,152 Skipping link: not a file: https://www.piwheels.org/simple/quaternion-algebra/ 2025-09-07T21:56:17,152 Skipping link: not a file: https://pypi.org/simple/quaternion-algebra/ 2025-09-07T21:56:17,182 Given no hashes to check 1 links for project 'quaternion-algebra': discarding no candidates 2025-09-07T21:56:17,183 Collecting quaternion-algebra==1.0 2025-09-07T21:56:17,184 Created temporary directory: /tmp/pip-unpack-tntwkeru 2025-09-07T21:56:17,417 Downloading quaternion-algebra-1.0.tar.gz (16 kB) 2025-09-07T21:56:17,441 Added quaternion-algebra==1.0 from https://files.pythonhosted.org/packages/5a/32/76c60f33820b5ad6bb1947037f07099f63e9201803b1d04e8316f9d46a06/quaternion-algebra-1.0.tar.gz to build tracker '/tmp/pip-build-tracker-fpdek6kn' 2025-09-07T21:56:17,443 Running setup.py (path:/tmp/pip-wheel-y9283qdr/quaternion-algebra_50859bfda14f4ed183033b6dce45f84e/setup.py) egg_info for package quaternion-algebra 2025-09-07T21:56:17,443 Created temporary directory: /tmp/pip-pip-egg-info-inr_txxh 2025-09-07T21:56:17,443 Preparing metadata (setup.py): started 2025-09-07T21:56:17,444 Running command python setup.py egg_info 2025-09-07T21:56:18,137 /usr/local/lib/python3.13/dist-packages/setuptools/_distutils/dist.py:289: UserWarning: Unknown distribution option: 'test_suite' 2025-09-07T21:56:18,137 warnings.warn(msg) 2025-09-07T21:56:18,601 running egg_info 2025-09-07T21:56:18,677 creating /tmp/pip-pip-egg-info-inr_txxh/quaternion_algebra.egg-info 2025-09-07T21:56:18,677 writing /tmp/pip-pip-egg-info-inr_txxh/quaternion_algebra.egg-info/PKG-INFO 2025-09-07T21:56:18,678 writing dependency_links to /tmp/pip-pip-egg-info-inr_txxh/quaternion_algebra.egg-info/dependency_links.txt 2025-09-07T21:56:18,679 writing top-level names to /tmp/pip-pip-egg-info-inr_txxh/quaternion_algebra.egg-info/top_level.txt 2025-09-07T21:56:18,679 writing manifest file '/tmp/pip-pip-egg-info-inr_txxh/quaternion_algebra.egg-info/SOURCES.txt' 2025-09-07T21:56:18,974 reading manifest file '/tmp/pip-pip-egg-info-inr_txxh/quaternion_algebra.egg-info/SOURCES.txt' 2025-09-07T21:56:18,974 reading manifest template 'MANIFEST.in' 2025-09-07T21:56:18,979 warning: no previously-included files matching '*.pyc' found anywhere in distribution 2025-09-07T21:56:18,979 warning: no previously-included files matching '*.so' found anywhere in distribution 2025-09-07T21:56:18,981 writing manifest file '/tmp/pip-pip-egg-info-inr_txxh/quaternion_algebra.egg-info/SOURCES.txt' 2025-09-07T21:56:19,093 Preparing metadata (setup.py): finished with status 'done' 2025-09-07T21:56:19,098 Source in /tmp/pip-wheel-y9283qdr/quaternion-algebra_50859bfda14f4ed183033b6dce45f84e has version 1.0, which satisfies requirement quaternion-algebra==1.0 from https://files.pythonhosted.org/packages/5a/32/76c60f33820b5ad6bb1947037f07099f63e9201803b1d04e8316f9d46a06/quaternion-algebra-1.0.tar.gz 2025-09-07T21:56:19,098 Removed quaternion-algebra==1.0 from https://files.pythonhosted.org/packages/5a/32/76c60f33820b5ad6bb1947037f07099f63e9201803b1d04e8316f9d46a06/quaternion-algebra-1.0.tar.gz from build tracker '/tmp/pip-build-tracker-fpdek6kn' 2025-09-07T21:56:19,101 Created temporary directory: /tmp/pip-unpack-f72z8a03 2025-09-07T21:56:19,101 Created temporary directory: /tmp/pip-unpack-v8rx72o0 2025-09-07T21:56:19,101 Building wheels for collected packages: quaternion-algebra 2025-09-07T21:56:19,102 Created temporary directory: /tmp/pip-wheel-ont0hzx6 2025-09-07T21:56:19,103 DEPRECATION: Building 'quaternion-algebra' using the legacy setup.py bdist_wheel mechanism, which will be removed in a future version. pip 25.3 will enforce this behaviour change. A possible replacement is to use the standardized build interface by setting the `--use-pep517` option, (possibly combined with `--no-build-isolation`), or adding a `pyproject.toml` file to the source tree of 'quaternion-algebra'. Discussion can be found at https://github.com/pypa/pip/issues/6334 2025-09-07T21:56:19,104 Building wheel for quaternion-algebra (setup.py): started 2025-09-07T21:56:19,104 Destination directory: /tmp/pip-wheel-ont0hzx6 2025-09-07T21:56:19,105 Running command python setup.py bdist_wheel 2025-09-07T21:56:19,783 /usr/local/lib/python3.13/dist-packages/setuptools/_distutils/dist.py:289: UserWarning: Unknown distribution option: 'test_suite' 2025-09-07T21:56:19,783 warnings.warn(msg) 2025-09-07T21:56:20,166 running bdist_wheel 2025-09-07T21:56:20,530 running build 2025-09-07T21:56:20,530 running build_py 2025-09-07T21:56:20,607 creating build/lib.linux-armv7l-cpython-313/quaternion 2025-09-07T21:56:20,607 copying src/quaternion/__init__.py -> build/lib.linux-armv7l-cpython-313/quaternion 2025-09-07T21:56:20,608 copying src/quaternion/quaternion.py -> build/lib.linux-armv7l-cpython-313/quaternion 2025-09-07T21:56:20,609 running build_ext 2025-09-07T21:56:20,945 building 'quaternion._quaternion' extension 2025-09-07T21:56:20,945 creating build/temp.linux-armv7l-cpython-313/src/quaternion 2025-09-07T21:56:20,946 arm-linux-gnueabihf-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -I/usr/include/python3.13 -c src/quaternion/quaternion.c -o build/temp.linux-armv7l-cpython-313/src/quaternion/quaternion.o 2025-09-07T21:56:21,295 src/quaternion/quaternion.c: In function ‘Quaternion_dealloc’: 2025-09-07T21:56:21,296 src/quaternion/quaternion.c:11:9: error: ‘Quaternion’ has no member named ‘ob_type’ 2025-09-07T21:56:21,296 11 | self->ob_type->tp_free((PyObject*)self); 2025-09-07T21:56:21,296 | ^~ 2025-09-07T21:56:21,311 src/quaternion/quaternion.c: In function ‘Quaternion_str’: 2025-09-07T21:56:21,311 src/quaternion/quaternion.c:90:18: error: implicit declaration of function ‘PyString_FromString’; did you mean ‘PyLong_FromString’? [-Wimplicit-function-declaration] 2025-09-07T21:56:21,311 90 | format = PyString_FromString("(%s%s %s %si %s %sj %s %sk)"); 2025-09-07T21:56:21,311 | ^~~~~~~~~~~~~~~~~~~ 2025-09-07T21:56:21,312 | PyLong_FromString 2025-09-07T21:56:21,312 src/quaternion/quaternion.c:90:16: error: assignment to ‘PyObject *’ {aka ‘struct _object *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 2025-09-07T21:56:21,312 90 | format = PyString_FromString("(%s%s %s %si %s %sj %s %sk)"); 2025-09-07T21:56:21,312 | ^ 2025-09-07T21:56:21,327 src/quaternion/quaternion.c:97:14: error: implicit declaration of function ‘PyString_Format’; did you mean ‘PyErr_Format’? [-Wimplicit-function-declaration] 2025-09-07T21:56:21,327 97 | result = PyString_Format(format, args); 2025-09-07T21:56:21,327 | ^~~~~~~~~~~~~~~ 2025-09-07T21:56:21,327 | PyErr_Format 2025-09-07T21:56:21,327 src/quaternion/quaternion.c:97:12: error: assignment to ‘PyObject *’ {aka ‘struct _object *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 2025-09-07T21:56:21,327 97 | result = PyString_Format(format, args); 2025-09-07T21:56:21,328 | ^ 2025-09-07T21:56:21,330 src/quaternion/quaternion.c: At top level: 2025-09-07T21:56:21,330 src/quaternion/quaternion.c:197:5: error: initialization of ‘int (*)(PyObject *)’ {aka ‘int (*)(struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} [-Wincompatible-pointer-types] 2025-09-07T21:56:21,330 197 | (unaryfunc)Quaternion_absolute, /* nb_absolute */ 2025-09-07T21:56:21,330 | ^ 2025-09-07T21:56:21,330 src/quaternion/quaternion.c:197:5: note: (near initialization for ‘Quaternion_as_number.nb_bool’) 2025-09-07T21:56:21,331 src/quaternion/quaternion.c:224:5: warning: excess elements in struct initializer 2025-09-07T21:56:21,331 224 | 0, /* nb_inplace_floor_divide */ 2025-09-07T21:56:21,331 | ^ 2025-09-07T21:56:21,331 src/quaternion/quaternion.c:224:5: note: (near initialization for ‘Quaternion_as_number’) 2025-09-07T21:56:21,332 src/quaternion/quaternion.c:225:5: warning: excess elements in struct initializer 2025-09-07T21:56:21,332 225 | 0, /* nb_inplace_true_divide */ 2025-09-07T21:56:21,332 | ^ 2025-09-07T21:56:21,332 src/quaternion/quaternion.c:225:5: note: (near initialization for ‘Quaternion_as_number’) 2025-09-07T21:56:21,332 src/quaternion/quaternion.c:226:5: warning: excess elements in struct initializer 2025-09-07T21:56:21,332 226 | 0, /* nb_index */ 2025-09-07T21:56:21,333 | ^ 2025-09-07T21:56:21,333 src/quaternion/quaternion.c:226:5: note: (near initialization for ‘Quaternion_as_number’) 2025-09-07T21:56:21,333 src/quaternion/quaternion.c:230:38: warning: missing braces around initializer [-Wmissing-braces] 2025-09-07T21:56:21,333 230 | static PyTypeObject QuaternionType = { 2025-09-07T21:56:21,334 | ^ 2025-09-07T21:56:21,335 In file included from /usr/include/python3.13/Python.h:72, 2025-09-07T21:56:21,335 from src/quaternion/quaternion.c:1: 2025-09-07T21:56:21,335 /usr/include/python3.13/object.h:138:9: error: initialization of ‘int’ from ‘void *’ makes integer from pointer without a cast [-Wint-conversion] 2025-09-07T21:56:21,335 138 | (type) \ 2025-09-07T21:56:21,335 | ^ 2025-09-07T21:56:21,335 src/quaternion/quaternion.c:231:5: note: in expansion of macro ‘PyObject_HEAD_INIT’ 2025-09-07T21:56:21,335 231 | PyObject_HEAD_INIT(NULL) 2025-09-07T21:56:21,335 | ^~~~~~~~~~~~~~~~~~ 2025-09-07T21:56:21,336 /usr/include/python3.13/object.h:138:9: note: (near initialization for ‘QuaternionType.ob_base.ob_size’) 2025-09-07T21:56:21,336 138 | (type) \ 2025-09-07T21:56:21,336 | ^ 2025-09-07T21:56:21,336 src/quaternion/quaternion.c:231:5: note: in expansion of macro ‘PyObject_HEAD_INIT’ 2025-09-07T21:56:21,336 231 | PyObject_HEAD_INIT(NULL) 2025-09-07T21:56:21,336 | ^~~~~~~~~~~~~~~~~~ 2025-09-07T21:56:21,337 src/quaternion/quaternion.c:230:38: warning: missing braces around initializer [-Wmissing-braces] 2025-09-07T21:56:21,337 230 | static PyTypeObject QuaternionType = { 2025-09-07T21:56:21,337 | ^ 2025-09-07T21:56:21,337 src/quaternion/quaternion.c:233:5: error: initialization of ‘int’ from ‘char *’ makes integer from pointer without a cast [-Wint-conversion] 2025-09-07T21:56:21,338 233 | "_quaternion.Quaternion", /* tp_name */ 2025-09-07T21:56:21,338 | ^~~~~~~~~~~~~~~~~~~~~~~~ 2025-09-07T21:56:21,338 src/quaternion/quaternion.c:233:5: note: (near initialization for ‘QuaternionType.tp_basicsize’) 2025-09-07T21:56:21,338 src/quaternion/quaternion.c:236:5: error: initialization of ‘int’ from ‘void (*)(PyObject *)’ {aka ‘void (*)(struct _object *)’} makes integer from pointer without a cast [-Wint-conversion] 2025-09-07T21:56:21,338 236 | (destructor)Quaternion_dealloc, /* tp_dealloc */ 2025-09-07T21:56:21,339 | ^ 2025-09-07T21:56:21,339 src/quaternion/quaternion.c:236:5: note: (near initialization for ‘QuaternionType.tp_vectorcall_offset’) 2025-09-07T21:56:21,339 src/quaternion/quaternion.c:242:5: error: initialization of ‘PySequenceMethods *’ from incompatible pointer type ‘PyNumberMethods *’ [-Wincompatible-pointer-types] 2025-09-07T21:56:21,339 242 | &Quaternion_as_number, /* tp_as_number */ 2025-09-07T21:56:21,339 | ^ 2025-09-07T21:56:21,340 src/quaternion/quaternion.c:242:5: note: (near initialization for ‘QuaternionType.tp_as_sequence’) 2025-09-07T21:56:21,340 src/quaternion/quaternion.c:247:5: error: initialization of ‘PyObject * (*)(PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _object *, struct _object *)’} from incompatible pointer type ‘PyObject * (*)(PyObject *)’ {aka ‘struct _object * (*)(struct _object *)’} [-Wincompatible-pointer-types] 2025-09-07T21:56:21,340 247 | (reprfunc)Quaternion_str, /* tp_str */ 2025-09-07T21:56:21,340 | ^ 2025-09-07T21:56:21,340 src/quaternion/quaternion.c:247:5: note: (near initialization for ‘QuaternionType.tp_getattro’) 2025-09-07T21:56:21,341 /usr/include/python3.13/object.h:729:29: error: initialization of ‘const char *’ from ‘long unsigned int’ makes pointer from integer without a cast [-Wint-conversion] 2025-09-07T21:56:21,341 729 | #define Py_TPFLAGS_DEFAULT ( \ 2025-09-07T21:56:21,341 | ^ 2025-09-07T21:56:21,341 src/quaternion/quaternion.c:251:5: note: in expansion of macro ‘Py_TPFLAGS_DEFAULT’ 2025-09-07T21:56:21,341 251 | Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ 2025-09-07T21:56:21,342 | ^~~~~~~~~~~~~~~~~~ 2025-09-07T21:56:21,342 /usr/include/python3.13/object.h:729:29: note: (near initialization for ‘QuaternionType.tp_doc’) 2025-09-07T21:56:21,342 729 | #define Py_TPFLAGS_DEFAULT ( \ 2025-09-07T21:56:21,342 | ^ 2025-09-07T21:56:21,342 src/quaternion/quaternion.c:251:5: note: in expansion of macro ‘Py_TPFLAGS_DEFAULT’ 2025-09-07T21:56:21,342 251 | Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ 2025-09-07T21:56:21,342 | ^~~~~~~~~~~~~~~~~~ 2025-09-07T21:56:21,343 src/quaternion/quaternion.c:252:5: error: initialization of ‘int (*)(PyObject *, int (*)(PyObject *, void *), void *)’ {aka ‘int (*)(struct _object *, int (*)(struct _object *, void *), void *)’} from incompatible pointer type ‘char *’ [-Wincompatible-pointer-types] 2025-09-07T21:56:21,343 252 | "Quaternion object", /* tp_doc */ 2025-09-07T21:56:21,343 | ^~~~~~~~~~~~~~~~~~~ 2025-09-07T21:56:21,343 src/quaternion/quaternion.c:252:5: note: (near initialization for ‘QuaternionType.tp_traverse’) 2025-09-07T21:56:21,344 src/quaternion/quaternion.c:259:5: error: initialization of ‘PyMemberDef *’ from incompatible pointer type ‘PyMethodDef *’ [-Wincompatible-pointer-types] 2025-09-07T21:56:21,344 259 | Quaternion_methods, /* tp_methods */ 2025-09-07T21:56:21,344 | ^~~~~~~~~~~~~~~~~~ 2025-09-07T21:56:21,344 src/quaternion/quaternion.c:259:5: note: (near initialization for ‘QuaternionType.tp_members’) 2025-09-07T21:56:21,345 src/quaternion/quaternion.c:260:5: error: initialization of ‘PyGetSetDef *’ from incompatible pointer type ‘PyMemberDef *’ [-Wincompatible-pointer-types] 2025-09-07T21:56:21,345 260 | Quaternion_members, /* tp_members */ 2025-09-07T21:56:21,345 | ^~~~~~~~~~~~~~~~~~ 2025-09-07T21:56:21,345 src/quaternion/quaternion.c:260:5: note: (near initialization for ‘QuaternionType.tp_getset’) 2025-09-07T21:56:21,346 src/quaternion/quaternion.c:267:5: error: initialization of ‘PyObject * (*)(PyTypeObject *, Py_ssize_t)’ {aka ‘struct _object * (*)(struct _typeobject *, int)’} from incompatible pointer type ‘int (*)(PyObject *, PyObject *, PyObject *)’ {aka ‘int (*)(struct _object *, struct _object *, struct _object *)’} [-Wincompatible-pointer-types] 2025-09-07T21:56:21,346 267 | (initproc)Quaternion_init, /* tp_init */ 2025-09-07T21:56:21,346 | ^ 2025-09-07T21:56:21,346 src/quaternion/quaternion.c:267:5: note: (near initialization for ‘QuaternionType.tp_alloc’) 2025-09-07T21:56:21,347 src/quaternion/quaternion.c:269:5: error: initialization of ‘void (*)(void *)’ from incompatible pointer type ‘PyObject * (*)(PyTypeObject *, PyObject *, PyObject *)’ {aka ‘struct _object * (*)(struct _typeobject *, struct _object *, struct _object *)’} [-Wincompatible-pointer-types] 2025-09-07T21:56:21,347 269 | Quaternion_new, /* tp_new */ 2025-09-07T21:56:21,347 | ^~~~~~~~~~~~~~ 2025-09-07T21:56:21,347 src/quaternion/quaternion.c:269:5: note: (near initialization for ‘QuaternionType.tp_free’) 2025-09-07T21:56:21,347 src/quaternion/quaternion.c:230:38: warning: missing braces around initializer [-Wmissing-braces] 2025-09-07T21:56:21,347 230 | static PyTypeObject QuaternionType = { 2025-09-07T21:56:21,348 | ^ 2025-09-07T21:56:21,348 src/quaternion/quaternion.c: In function ‘init_quaternion’: 2025-09-07T21:56:21,348 src/quaternion/quaternion.c:283:44: error: ‘return’ with no value, in function returning non-void [-Wreturn-mismatch] 2025-09-07T21:56:21,349 283 | if (PyType_Ready(&QuaternionType) < 0) return; 2025-09-07T21:56:21,349 | ^~~~~~ 2025-09-07T21:56:21,349 src/quaternion/quaternion.c:279:1: note: declared here 2025-09-07T21:56:21,349 279 | init_quaternion(void) 2025-09-07T21:56:21,349 | ^~~~~~~~~~~~~~~ 2025-09-07T21:56:21,361 src/quaternion/quaternion.c:285:9: error: implicit declaration of function ‘Py_InitModule’ [-Wimplicit-function-declaration] 2025-09-07T21:56:21,361 285 | m = Py_InitModule("_quaternion", quaternion_funcs); 2025-09-07T21:56:21,361 | ^~~~~~~~~~~~~ 2025-09-07T21:56:21,362 src/quaternion/quaternion.c:285:7: error: assignment to ‘PyObject *’ {aka ‘struct _object *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 2025-09-07T21:56:21,362 285 | m = Py_InitModule("_quaternion", quaternion_funcs); 2025-09-07T21:56:21,362 | ^ 2025-09-07T21:56:21,363 src/quaternion/quaternion.c:287:20: error: ‘return’ with no value, in function returning non-void [-Wreturn-mismatch] 2025-09-07T21:56:21,363 287 | if (m == NULL) return; 2025-09-07T21:56:21,363 | ^~~~~~ 2025-09-07T21:56:21,363 src/quaternion/quaternion.c:279:1: note: declared here 2025-09-07T21:56:21,363 279 | init_quaternion(void) 2025-09-07T21:56:21,363 | ^~~~~~~~~~~~~~~ 2025-09-07T21:56:21,374 error: command '/usr/bin/arm-linux-gnueabihf-gcc' failed with exit code 1 2025-09-07T21:56:21,519 ERROR: python setup.py bdist_wheel exited with 1 2025-09-07T21:56:21,532 [bold magenta]full command[/]: [blue]/usr/bin/python3 -u -c ' 2025-09-07T21:56:21,532 exec(compile('"'"''"'"''"'"' 2025-09-07T21:56:21,532 # This is -- a caller that pip uses to run setup.py 2025-09-07T21:56:21,532 # 2025-09-07T21:56:21,532 # - It imports setuptools before invoking setup.py, to enable projects that directly 2025-09-07T21:56:21,532 # import from `distutils.core` to work with newer packaging standards. 2025-09-07T21:56:21,532 # - It provides a clear error message when setuptools is not installed. 2025-09-07T21:56:21,532 # - It sets `sys.argv[0]` to the underlying `setup.py`, when invoking `setup.py` so 2025-09-07T21:56:21,532 # setuptools doesn'"'"'t think the script is `-c`. This avoids the following warning: 2025-09-07T21:56:21,532 # manifest_maker: standard file '"'"'-c'"'"' not found". 2025-09-07T21:56:21,532 # - It generates a shim setup.py, for handling setup.cfg-only projects. 2025-09-07T21:56:21,532 import os, sys, tokenize, traceback 2025-09-07T21:56:21,532 2025-09-07T21:56:21,532 try: 2025-09-07T21:56:21,532 import setuptools 2025-09-07T21:56:21,532 except ImportError: 2025-09-07T21:56:21,532 print( 2025-09-07T21:56:21,532 "ERROR: Can not execute `setup.py` since setuptools failed to import in " 2025-09-07T21:56:21,532 "the build environment with exception:", 2025-09-07T21:56:21,532 file=sys.stderr, 2025-09-07T21:56:21,532 ) 2025-09-07T21:56:21,532 traceback.print_exc() 2025-09-07T21:56:21,532 sys.exit(1) 2025-09-07T21:56:21,532 2025-09-07T21:56:21,532 __file__ = %r 2025-09-07T21:56:21,532 sys.argv[0] = __file__ 2025-09-07T21:56:21,532 2025-09-07T21:56:21,532 if os.path.exists(__file__): 2025-09-07T21:56:21,532 filename = __file__ 2025-09-07T21:56:21,532 with tokenize.open(__file__) as f: 2025-09-07T21:56:21,532 setup_py_code = f.read() 2025-09-07T21:56:21,532 else: 2025-09-07T21:56:21,532 filename = "" 2025-09-07T21:56:21,532 setup_py_code = "from setuptools import setup; setup()" 2025-09-07T21:56:21,532 2025-09-07T21:56:21,532 exec(compile(setup_py_code, filename, "exec")) 2025-09-07T21:56:21,532 '"'"''"'"''"'"' % ('"'"'/tmp/pip-wheel-y9283qdr/quaternion-algebra_50859bfda14f4ed183033b6dce45f84e/setup.py'"'"',), "", "exec"))' bdist_wheel -d /tmp/pip-wheel-ont0hzx6[/] 2025-09-07T21:56:21,533 [bold magenta]cwd[/]: /tmp/pip-wheel-y9283qdr/quaternion-algebra_50859bfda14f4ed183033b6dce45f84e/ 2025-09-07T21:56:21,533 Building wheel for quaternion-algebra (setup.py): finished with status 'error' 2025-09-07T21:56:21,534 ERROR: Failed building wheel for quaternion-algebra 2025-09-07T21:56:21,535 Running setup.py clean for quaternion-algebra 2025-09-07T21:56:21,536 Running command python setup.py clean 2025-09-07T21:56:22,204 /usr/local/lib/python3.13/dist-packages/setuptools/_distutils/dist.py:289: UserWarning: Unknown distribution option: 'test_suite' 2025-09-07T21:56:22,204 warnings.warn(msg) 2025-09-07T21:56:22,665 running clean 2025-09-07T21:56:22,808 removing 'build/temp.linux-armv7l-cpython-313' (and everything under it) 2025-09-07T21:56:22,809 removing 'build/lib.linux-armv7l-cpython-313' (and everything under it) 2025-09-07T21:56:22,809 'build/bdist.linux-armv7l' does not exist -- can't clean it 2025-09-07T21:56:22,809 'build/scripts-3.13' does not exist -- can't clean it 2025-09-07T21:56:22,809 removing 'build' 2025-09-07T21:56:22,921 Failed to build quaternion-algebra 2025-09-07T21:56:22,922 ERROR: Failed to build one or more wheels 2025-09-07T21:56:22,923 Exception information: 2025-09-07T21:56:22,923 Traceback (most recent call last): 2025-09-07T21:56:22,923 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 105, in _run_wrapper 2025-09-07T21:56:22,923 status = _inner_run() 2025-09-07T21:56:22,923 File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 96, in _inner_run 2025-09-07T21:56:22,923 return self.run(options, args) 2025-09-07T21:56:22,923 ~~~~~~~~^^^^^^^^^^^^^^^ 2025-09-07T21:56:22,923 File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 68, in wrapper 2025-09-07T21:56:22,923 return func(self, options, args) 2025-09-07T21:56:22,923 File "/usr/lib/python3/dist-packages/pip/_internal/commands/wheel.py", line 180, in run 2025-09-07T21:56:22,923 raise CommandError("Failed to build one or more wheels") 2025-09-07T21:56:22,923 pip._internal.exceptions.CommandError: Failed to build one or more wheels 2025-09-07T21:56:22,927 Removed build tracker: '/tmp/pip-build-tracker-fpdek6kn'