dhermes / bezier

Helper for Bézier Curves, Triangles, and Higher Order Objects
Apache License 2.0
262 stars 36 forks source link

pip3 install of bezier fails #275

Closed melonmouse closed 2 years ago

melonmouse commented 2 years ago

Steps to reproduce

run pip3 install bezier

Expected behavior

bezier installs (in user space)

Actual behavior

Error because the environment variable BEZIER_INSTALL_PREFIX is not set. Explicitly installing in user space or with root doesn't change anything. Bezier does not install.

Possible workaround

Set BEZIER_INSTALL_PREFIX to some value (did not test if that fixes it). Don't like doing that because I want pip to handle installation locations like it does with other packages.

Software versions

⮞⮞⮞ pip3 --version
pip 21.2.3 from /usr/lib/python3.10/site-packages/pip (python 3.10)
⮞⮞⮞ python --version
Python 3.10.0
⮞⮞⮞ cat /etc/fedora-release 
Fedora release 35 (Thirty Five)

Logs

pip3 install bezier ``` Defaulting to user installation because normal site-packages is not writeable Collecting bezier Using cached bezier-2021.2.12.tar.gz (313 kB) ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-c7l04qpk/bezier_1ae222099e174d0db3a03720f989db8b/setup.py'"'"'; __file__='"'"'/tmp/pip-install-c7l04qpk/bezier_1ae222099e174d0db3a03720f989db8b/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-bdebbu8f cwd: /tmp/pip-install-c7l04qpk/bezier_1ae222099e174d0db3a03720f989db8b/ Complete output (1 lines): The BEZIER_INSTALL_PREFIX environment variable must be set. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/cb/e8/0073ac3f92cbe8ced10e5e5822594a8f63b9a3dc91258c681b7ee96b80b0/bezier-2021.2.12.tar.gz#sha256=d0f752aeb420057ab761f962259c7ca00d925750e324c9bb729f2f10ad39529a (from https://pypi.org/simple/bezier/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached bezier-2020.5.19.tar.gz (313 kB) ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-c7l04qpk/bezier_cff8401a6d644ac899885781ea13ec1c/setup.py'"'"'; __file__='"'"'/tmp/pip-install-c7l04qpk/bezier_cff8401a6d644ac899885781ea13ec1c/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-831jldwk cwd: /tmp/pip-install-c7l04qpk/bezier_cff8401a6d644ac899885781ea13ec1c/ Complete output (1 lines): The BEZIER_INSTALL_PREFIX environment variable must be set. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/b9/0c/b1982f93c36fc06850a3880bb693bf24a047946633ca7403664836b9da9e/bezier-2020.5.19.tar.gz#sha256=ff75337e5bb4385376aeaa48fc941bcd61b528df43a1e938bfb07fe7d924b19c (from https://pypi.org/simple/bezier/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached bezier-2020.2.3.tar.gz (310 kB) ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-c7l04qpk/bezier_e9044ccf18074e6eab695fde536d25e9/setup.py'"'"'; __file__='"'"'/tmp/pip-install-c7l04qpk/bezier_e9044ccf18074e6eab695fde536d25e9/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-igsowbkg cwd: /tmp/pip-install-c7l04qpk/bezier_e9044ccf18074e6eab695fde536d25e9/ Complete output (1 lines): The BEZIER_INSTALL_PREFIX environment variable must be set. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/9a/cb/4859a29397ba6d57ddabc54c03b65e85a86cbf77cb898ad1bb2cfab14c0c/bezier-2020.2.3.tar.gz#sha256=0526631e41ac0416d4dd6be66105670bb1c1a342d4e7e82b3e9009231ac0e868 (from https://pypi.org/simple/bezier/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Using cached bezier-2020.1.14.tar.gz (376 kB) Requirement already satisfied: numpy>=1.18.1 in /usr/lib64/python3.10/site-packages (from bezier) (1.21.1) Using legacy 'setup.py install' for bezier, since package 'wheel' is not installed. Installing collected packages: bezier Running setup.py install for bezier: started Running setup.py install for bezier: finished with status 'error' ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-c7l04qpk/bezier_b0ace09565c3431ca262e15f485cf0ee/setup.py'"'"'; __file__='"'"'/tmp/pip-install-c7l04qpk/bezier_b0ace09565c3431ca262e15f485cf0ee/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-0tofu_p4/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/abe/.local/include/python3.10/bezier cwd: /tmp/pip-install-c7l04qpk/bezier_b0ace09565c3431ca262e15f485cf0ee/ Complete output (242 lines): running install running build running build_py creating build creating build/lib.linux-x86_64-3.10 creating build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/triangle.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/curved_polygon.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/curve.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_triangle_intersection.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_triangle_helpers.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_symbolic.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_py_triangle_intersection.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_py_triangle_helpers.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_py_intersection_helpers.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_py_helpers.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_py_geometric_intersection.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_py_curve_helpers.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_plot_helpers.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_legacy.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_intersection_helpers.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_helpers.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_geometric_intersection.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_curve_helpers.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_clipping.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_base.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_algebraic_intersection.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/__init__.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/__config__.py -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_triangle_intersection.pxd -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_triangle.pxd -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_status.pxd -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_helpers.pxd -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_curve_intersection.pxd -> build/lib.linux-x86_64-3.10/bezier copying src/python/bezier/_curve.pxd -> build/lib.linux-x86_64-3.10/bezier running build_ext Fortran f77 compiler: /usr/bin/gfortran -Wall -ffixed-form -fno-second-underscore -fPIC -O3 -funroll-loops -Wextra -Wno-compare-reals -Wimplicit-interface -fmax-errors=1 -std=f2008 -march=native Fortran f90 compiler: /usr/bin/gfortran -Wall -fno-second-underscore -fPIC -O3 -funroll-loops -Wextra -Wno-compare-reals -Wimplicit-interface -fmax-errors=1 -std=f2008 -Werror -march=native Fortran fix compiler: /usr/bin/gfortran -Wall -g -ffixed-form -fno-second-underscore -Wall -g -fno-second-underscore -fPIC -O3 -funroll-loops creating build/temp.linux-x86_64-3.10 creating build/temp.linux-x86_64-3.10/src creating build/temp.linux-x86_64-3.10/src/fortran creating build/temp.linux-x86_64-3.10/src/fortran/quadpack compile options: '-c' extra options: '-J build/temp.linux-x86_64-3.10' gfortran:f90: src/fortran/types.f90 gfortran:f90: src/fortran/status.f90 gfortran:f90: src/fortran/helpers.f90 gfortran:f90: src/fortran/curve.f90 gfortran:f90: src/fortran/triangle.f90 gfortran:f90: src/fortran/curve_intersection.f90 gfortran:f90: src/fortran/triangle_intersection.f90 gfortran:f77: src/fortran/quadpack/d1mach.f gfortran:f77: src/fortran/quadpack/dqelg.f gfortran:f77: src/fortran/quadpack/dqk21.f gfortran:f77: src/fortran/quadpack/dqpsrt.f gfortran:f77: src/fortran/quadpack/dqagse.f ar: adding 12 object files to build/lib.linux-x86_64-3.10/bezier/lib/libbezier.a building 'bezier._speedup' extension C compiler: gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC creating build/temp.linux-x86_64-3.10/src/python creating build/temp.linux-x86_64-3.10/src/python/bezier compile options: '-I/usr/lib64/python3.10/site-packages/numpy/core/include -Isrc/fortran/include -I/usr/include/python3.10 -c' gcc: src/python/bezier/_speedup.c In file included from /usr/lib64/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h:1969, from /usr/lib64/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h:12, from /usr/lib64/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h:4, from src/python/bezier/_speedup.c:599: /usr/lib64/python3.10/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp] 17 | #warning "Using deprecated NumPy API, disable it with " \ | ^~~~~~~ src/python/bezier/_speedup.c: In function ‘__pyx_pf_6bezier_8_speedup_70compute_area’: src/python/bezier/_speedup.c:15309:130: warning: passing argument 3 of ‘BEZ_compute_area’ from incompatible pointer type [-Wincompatible-pointer-types] 15309 | BEZ_compute_area((&__pyx_v_num_edges), (&(*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_sizes.data) + __pyx_t_16)) )))), __pyx_v_nodes_pointers, (&__pyx_v_area), (&__pyx_v_unused_not_implemented)); | ^~~~~~~~~~~~~~~~~~~~~~ | | | double ** In file included from src/python/bezier/_speedup.c:605: src/fortran/include/bezier/triangle.h:49:26: note: expected ‘const double * const*’ but argument is of type ‘double **’ 49 | const double* const* nodes_pointers, double* area, bool* not_implemented); | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ src/python/bezier/_speedup.c: In function ‘__pyx_pf_6bezier_8_speedup_80_triangle_intersections_success’: src/python/bezier/_speedup.c:16810:33: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare] 16810 | for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { | ^ src/python/bezier/_speedup.c: In function ‘__pyx_tp_dealloc_array’: src/python/bezier/_speedup.c:35278:5: error: lvalue required as increment operand 35278 | ++Py_REFCNT(o); | ^~ src/python/bezier/_speedup.c:35280:5: error: lvalue required as decrement operand 35280 | --Py_REFCNT(o); | ^~ src/python/bezier/_speedup.c: In function ‘__pyx_tp_dealloc_memoryview’: src/python/bezier/_speedup.c:35589:5: error: lvalue required as increment operand 35589 | ++Py_REFCNT(o); | ^~ src/python/bezier/_speedup.c:35591:5: error: lvalue required as decrement operand 35591 | --Py_REFCNT(o); | ^~ src/python/bezier/_speedup.c: In function ‘__pyx_tp_dealloc__memoryviewslice’: src/python/bezier/_speedup.c:35839:5: error: lvalue required as increment operand 35839 | ++Py_REFCNT(o); | ^~ src/python/bezier/_speedup.c:35841:5: error: lvalue required as decrement operand 35841 | --Py_REFCNT(o); | ^~ src/python/bezier/_speedup.c: In function ‘__Pyx_ParseOptionalKeywords’: src/python/bezier/_speedup.c:39047:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] 39047 | (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /usr/include/python3.10/unicodeobject.h:1046, from /usr/include/python3.10/Python.h:96, from src/python/bezier/_speedup.c:4: /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here 446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~ src/python/bezier/_speedup.c:39047:21: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations] 39047 | (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /usr/include/python3.10/unicodeobject.h:1046, from /usr/include/python3.10/Python.h:96, from src/python/bezier/_speedup.c:4: /usr/include/python3.10/cpython/unicodeobject.h:580:45: note: declared here 580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode( | ^~~~~~~~~~~~~~~~~~~ src/python/bezier/_speedup.c:39047:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] 39047 | (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /usr/include/python3.10/unicodeobject.h:1046, from /usr/include/python3.10/Python.h:96, from src/python/bezier/_speedup.c:4: /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here 446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~ src/python/bezier/_speedup.c:39047:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] 39047 | (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /usr/include/python3.10/unicodeobject.h:1046, from /usr/include/python3.10/Python.h:96, from src/python/bezier/_speedup.c:4: /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here 446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~ src/python/bezier/_speedup.c:39047:21: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations] 39047 | (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /usr/include/python3.10/unicodeobject.h:1046, from /usr/include/python3.10/Python.h:96, from src/python/bezier/_speedup.c:4: /usr/include/python3.10/cpython/unicodeobject.h:580:45: note: declared here 580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode( | ^~~~~~~~~~~~~~~~~~~ src/python/bezier/_speedup.c:39047:21: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] 39047 | (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /usr/include/python3.10/unicodeobject.h:1046, from /usr/include/python3.10/Python.h:96, from src/python/bezier/_speedup.c:4: /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here 446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~ src/python/bezier/_speedup.c:39063:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] 39063 | (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /usr/include/python3.10/unicodeobject.h:1046, from /usr/include/python3.10/Python.h:96, from src/python/bezier/_speedup.c:4: /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here 446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~ src/python/bezier/_speedup.c:39063:25: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations] 39063 | (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /usr/include/python3.10/unicodeobject.h:1046, from /usr/include/python3.10/Python.h:96, from src/python/bezier/_speedup.c:4: /usr/include/python3.10/cpython/unicodeobject.h:580:45: note: declared here 580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode( | ^~~~~~~~~~~~~~~~~~~ src/python/bezier/_speedup.c:39063:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] 39063 | (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /usr/include/python3.10/unicodeobject.h:1046, from /usr/include/python3.10/Python.h:96, from src/python/bezier/_speedup.c:4: /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here 446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~ src/python/bezier/_speedup.c:39063:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] 39063 | (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /usr/include/python3.10/unicodeobject.h:1046, from /usr/include/python3.10/Python.h:96, from src/python/bezier/_speedup.c:4: /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here 446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~ src/python/bezier/_speedup.c:39063:25: warning: ‘PyUnicode_AsUnicode’ is deprecated [-Wdeprecated-declarations] 39063 | (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /usr/include/python3.10/unicodeobject.h:1046, from /usr/include/python3.10/Python.h:96, from src/python/bezier/_speedup.c:4: /usr/include/python3.10/cpython/unicodeobject.h:580:45: note: declared here 580 | Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode( | ^~~~~~~~~~~~~~~~~~~ src/python/bezier/_speedup.c:39063:25: warning: ‘_PyUnicode_get_wstr_length’ is deprecated [-Wdeprecated-declarations] 39063 | (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : | ^ In file included from /usr/include/python3.10/unicodeobject.h:1046, from /usr/include/python3.10/Python.h:96, from src/python/bezier/_speedup.c:4: /usr/include/python3.10/cpython/unicodeobject.h:446:26: note: declared here 446 | static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~ src/python/bezier/_speedup.c: In function ‘__Pyx_decode_c_string’: src/python/bezier/_speedup.c:40990:9: warning: ‘PyUnicode_FromUnicode’ is deprecated [-Wdeprecated-declarations] 40990 | return PyUnicode_FromUnicode(NULL, 0); | ^~~~~~ In file included from /usr/include/python3.10/unicodeobject.h:1046, from /usr/include/python3.10/Python.h:96, from src/python/bezier/_speedup.c:4: /usr/include/python3.10/cpython/unicodeobject.h:551:42: note: declared here 551 | Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_FromUnicode( | ^~~~~~~~~~~~~~~~~~~~~ src/python/bezier/_speedup.c: In function ‘__Pyx_Coroutine_Send’: src/python/bezier/_speedup.c:43902:19: warning: implicit declaration of function ‘_PyGen_Send’; did you mean ‘_PyGen_yf’? [-Wimplicit-function-declaration] 43902 | ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value); | ^~~~~~~~~~~ | _PyGen_yf src/python/bezier/_speedup.c:43902:17: warning: assignment to ‘PyObject *’ {aka ‘struct _object *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 43902 | ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value); | ^ src/python/bezier/_speedup.c:43907:17: warning: assignment to ‘PyObject *’ {aka ‘struct _object *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 43907 | ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value); | ^ src/python/bezier/_speedup.c: In function ‘__Pyx_Generator_Next’: src/python/bezier/_speedup.c:43991:17: warning: assignment to ‘PyObject *’ {aka ‘struct _object *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 43991 | ret = _PyGen_Send((PyGenObject*)yf, NULL); | ^ error: Command "gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/lib64/python3.10/site-packages/numpy/core/include -Isrc/fortran/include -I/usr/include/python3.10 -c src/python/bezier/_speedup.c -o build/temp.linux-x86_64-3.10/src/python/bezier/_speedup.o" failed with exit status 1 ---------------------------------------- ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-c7l04qpk/bezier_b0ace09565c3431ca262e15f485cf0ee/setup.py'"'"'; __file__='"'"'/tmp/pip-install-c7l04qpk/bezier_b0ace09565c3431ca262e15f485cf0ee/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-0tofu_p4/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/abe/.local/include/python3.10/bezier Check the logs for full command output. ```
dhermes commented 2 years ago

@melonmouse Thanks for filing, this is actually a duplicate of #273 believe it or not. I have finished #271 to add Python 3.10 support but haven't done a release yet since doing so.

I'm closing this as a duplicate, but am happy to re-open if you think there is something substantially different that warrants attention.

In the meantime, you can do a Python-only install from PyPI / pip that should work on Python 3.10, from https://bezier.readthedocs.io/en/2021.2.12/#installing:

BEZIER_NO_EXTENSION=true \
    python  -m pip install --upgrade bezier --no-binary=bezier
dhermes commented 2 years ago

Inspired by this ticket and similar moves by other projects in the Python ecosystem I've filed #277 and #278 to smooth the rough edges around this stuff.

Thanks for the nudge in the right direction!

melonmouse commented 2 years ago

Thanks for your work on this project!

Actually not too surprised it was a duplicate of #273, however I suspected it wasn't exactly because of the lack of human readable error message. #278 sounds like the right direction! Thanks again :)