blankly-finance / newnewtulipy

An actively maintained version of tulipy for modern python versions. Used in the blankly-finance/blankly package.
GNU Lesser General Public License v3.0
6 stars 5 forks source link

Build error on armv7l Debian (Tinkerboard R2.0) #1

Open chaterpaul opened 1 year ago

chaterpaul commented 1 year ago

Hi,

Any ideas on the following ?

Thanks

Paul

linaro@linaro-alip:~$ python -m pip install Cython numpy WARNING: Value for scheme.headers does not match. Please report this to https://github.com/pypa/pip/issues/10151 distutils: /usr/local/include/python3.9/UNKNOWN sysconfig: /home/linaro/Python-3.9.9/Include/UNKNOWN WARNING: Additional context: user = False home = None root = None prefix = None Defaulting to user installation because normal site-packages is not writeable Collecting Cython Using cached Cython-0.29.33-py2.py3-none-any.whl (987 kB) Requirement already satisfied: numpy in ./.local/lib/python3.9/site-packages (1.24.2) Installing collected packages: Cython WARNING: The scripts cygdb, cython and cythonize are installed in '/home/linaro/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. Successfully installed Cython-0.29.33 WARNING: You are using pip version 21.2.4; however, version 23.0.1 is available. You should consider upgrading via the '/home/linaro/Python-3.9.9/python -m pip install --upgrade pip' command. linaro@linaro-alip:~$ python -m pip install newnewtulipy WARNING: Value for scheme.headers does not match. Please report this to https://github.com/pypa/pip/issues/10151 distutils: /usr/local/include/python3.9/UNKNOWN sysconfig: /home/linaro/Python-3.9.9/Include/UNKNOWN WARNING: Additional context: user = False home = None root = None prefix = None Defaulting to user installation because normal site-packages is not writeable Collecting newnewtulipy Using cached newnewtulipy-0.4.6.5.tar.gz (34 kB) Installing build dependencies ... done Getting requirements to build wheel ... done Preparing wheel metadata ... done Requirement already satisfied: numpy>=1.22.3 in ./.local/lib/python3.9/site-packages (from newnewtulipy) (1.24.2) Building wheels for collected packages: newnewtulipy Building wheel for newnewtulipy (PEP 517) ... error ERROR: Command errored out with exit status 1: command: /home/linaro/Python-3.9.9/python /usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /tmp/tmpez4r3y_z cwd: /tmp/pip-install-bbm20b7u/newnewtulipy_e0535a4e9cc54fb99d3340412fa88e75 Complete output (344 lines): running bdist_wheel running build running build_py creating build creating build/lib.linux-armv7l-cpython-39 creating build/lib.linux-armv7l-cpython-39/tulipy copying tulipy/init.py -> build/lib.linux-armv7l-cpython-39/tulipy running build_ext cythoning tulipy/lib/init.pyx to tulipy/lib/init.c /tmp/pip-build-env-va4190v9/overlay/lib/python3.9/site-packages/Cython/Compiler/Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /tmp/pip-install-bbm20b7u/newnewtulipy_e0535a4e9cc54fb99d3340412fa88e75/tulipy/lib/init.pyx tree = Parsing.p_module(s, pxd, full_module_name)

Error compiling Cython file:

... from libc.limits cimport INT_MAX

import numpy as np cimport numpy as np

cimport ti ^

tulipy/lib/init.pyx:37:8: 'ti.pxd' not found

Error compiling Cython file:

... ti.TI_TYPE_SIMPLE: b'simple', ti.TI_TYPE_COMPARATIVE: b'comparative', }

cdef class _Indicator: cdef const ti.ti_indicator_info * info ^

tulipy/lib/init.pyx:57:15: 'ti_indicator_info' is not a type identifier

Error compiling Cython file:

...

This would cause self.info.indicator to return ti.TI_INVALID_OPTION, but there would

          # be a problem before we got there in creating the `outputs` np.ndarray below with a
          # negative dimension
          raise InvalidOptionError()

      cdef ti.TI_REAL * c_inputs[ti.TI_MAXINDPARAMS]
          ^

tulipy/lib/init.pyx:107:13: 'TI_REAL' is not a type identifier

Error compiling Cython file:

...

This would cause self.info.indicator to return ti.TI_INVALID_OPTION, but there would

          # be a problem before we got there in creating the `outputs` np.ndarray below with a
          # negative dimension
          raise InvalidOptionError()

      cdef ti.TI_REAL * c_inputs[ti.TI_MAXINDPARAMS]
                                  ^

tulipy/lib/init.pyx:107:37: cimported module has no attribute 'TI_MAXINDPARAMS'

Error compiling Cython file:

...

This would cause self.info.indicator to return ti.TI_INVALID_OPTION, but there would

          # be a problem before we got there in creating the `outputs` np.ndarray below with a
          # negative dimension
          raise InvalidOptionError()

      cdef ti.TI_REAL * c_inputs[ti.TI_MAXINDPARAMS]
                                  ^

tulipy/lib/init.pyx:107:37: Not allowed in a constant expression

Error compiling Cython file:

...

This would cause self.info.indicator to return ti.TI_INVALID_OPTION, but there would

          # be a problem before we got there in creating the `outputs` np.ndarray below with a
          # negative dimension
          raise InvalidOptionError()

      cdef ti.TI_REAL * c_inputs[ti.TI_MAXINDPARAMS]
                                  ^

tulipy/lib/init.pyx:107:37: Array dimension not integer

Error compiling Cython file:

... else: raise InvalidInputError("Input arrays must have a numeric dtype") input_ref = inputs[i][-min_input_len:] c_inputs[i] = &input_ref[0]

      cdef ti.TI_REAL * c_outputs[ti.TI_MAXINDPARAMS]
          ^

tulipy/lib/init.pyx:120:13: 'TI_REAL' is not a type identifier

Error compiling Cython file:

... else: raise InvalidInputError("Input arrays must have a numeric dtype") input_ref = inputs[i][-min_input_len:] c_inputs[i] = &input_ref[0]

      cdef ti.TI_REAL * c_outputs[ti.TI_MAXINDPARAMS]
                                   ^

tulipy/lib/init.pyx:120:38: cimported module has no attribute 'TI_MAXINDPARAMS'

Error compiling Cython file:

... else: raise InvalidInputError("Input arrays must have a numeric dtype") input_ref = inputs[i][-min_input_len:] c_inputs[i] = &input_ref[0]

      cdef ti.TI_REAL * c_outputs[ti.TI_MAXINDPARAMS]
                                   ^

tulipy/lib/init.pyx:120:38: Not allowed in a constant expression

Error compiling Cython file:

... else: raise InvalidInputError("Input arrays must have a numeric dtype") input_ref = inputs[i][-min_input_len:] c_inputs[i] = &input_ref[0]

      cdef ti.TI_REAL * c_outputs[ti.TI_MAXINDPARAMS]
                                   ^

tulipy/lib/init.pyx:120:38: Array dimension not integer

Error compiling Cython file:

... import numpy as np cimport numpy as np

cimport ti

TI_VERSION = ti.TI_VERSION ^

tulipy/lib/init.pyx:39:15: cimported module has no attribute 'TI_VERSION'

Error compiling Cython file:

... cimport numpy as np

cimport ti

TI_VERSION = ti.TI_VERSION TI_BUILD = ti.TI_BUILD ^

tulipy/lib/init.pyx:40:15: cimported module has no attribute 'TI_BUILD'

Error compiling Cython file:

...

class InvalidInputError(ValueError): pass

cdef dict _type_names = { ti.TI_TYPE_OVERLAY: b'overlay', ^

tulipy/lib/init.pyx:49:6: cimported module has no attribute 'TI_TYPE_OVERLAY'

Error compiling Cython file:

... class InvalidInputError(ValueError): pass

cdef dict _type_names = { ti.TI_TYPE_OVERLAY: b'overlay', ti.TI_TYPE_INDICATOR: b'indicator', ^

tulipy/lib/init.pyx:50:6: cimported module has no attribute 'TI_TYPE_INDICATOR'

Error compiling Cython file:

... pass

cdef dict _type_names = { ti.TI_TYPE_OVERLAY: b'overlay', ti.TI_TYPE_INDICATOR: b'indicator', ti.TI_TYPE_MATH: b'math', ^

tulipy/lib/init.pyx:51:6: cimported module has no attribute 'TI_TYPE_MATH'

Error compiling Cython file:

...

cdef dict _type_names = { ti.TI_TYPE_OVERLAY: b'overlay', ti.TI_TYPE_INDICATOR: b'indicator', ti.TI_TYPE_MATH: b'math', ti.TI_TYPE_SIMPLE: b'simple', ^

tulipy/lib/init.pyx:52:6: cimported module has no attribute 'TI_TYPE_SIMPLE'

Error compiling Cython file:

... cdef dict _type_names = { ti.TI_TYPE_OVERLAY: b'overlay', ti.TI_TYPE_INDICATOR: b'indicator', ti.TI_TYPE_MATH: b'math', ti.TI_TYPE_SIMPLE: b'simple', ti.TI_TYPE_COMPARATIVE: b'comparative', ^

tulipy/lib/init.pyx:53:6: cimported module has no attribute 'TI_TYPE_COMPARATIVE'

Error compiling Cython file:

... cdef readonly const char name cdef readonly const char full_name cdef readonly const char * type

  def __init__(self, int index):
      assert 0 <= index < ti.TI_INDICATOR_COUNT
                           ^

tulipy/lib/init.pyx:64:30: cimported module has no attribute 'TI_INDICATOR_COUNT'

Error compiling Cython file:

... cdef readonly const char * type

  def __init__(self, int index):
      assert 0 <= index < ti.TI_INDICATOR_COUNT

      self.info = ti.ti_indicators + index
                   ^

tulipy/lib/init.pyx:66:22: cimported module has no attribute 'ti_indicators'

Error compiling Cython file:

... min_input_len = builtin_min(min_input_len, inputs[i].shape[0])

      option_list = options if options else [0.0]
      cdef np.ndarray[np.float64_t, ndim=1, mode='c'] c_options = np.array(option_list, dtype=np.float64)

      delta = self.info.start(&c_options[0])
                             ^

tulipy/lib/init.pyx:100:32: Cannot convert 'float64_t *' to Python object

Error compiling Cython file:

... c_inputs[i] = &input_ref[0]

      cdef ti.TI_REAL * c_outputs[ti.TI_MAXINDPARAMS]
      cdef np.ndarray[np.float64_t, ndim=2, mode='c'] outputs = np.empty((self.info.outputs, min_input_len - delta))
      for i in range(self.info.outputs):
          c_outputs[i] = &outputs[i,0]
                        ^

tulipy/lib/init.pyx:123:27: Cannot take address of Python object

Error compiling Cython file:

... cdef ti.TI_REAL * c_outputs[ti.TI_MAXINDPARAMS] cdef np.ndarray[np.float64_t, ndim=2, mode='c'] outputs = np.empty((self.info.outputs, min_input_len - delta)) for i in range(self.info.outputs): c_outputs[i] = &outputs[i,0]

      ret = self.info.indicator(min_input_len, c_inputs, &c_options[0], c_outputs)
                                                        ^

tulipy/lib/init.pyx:125:59: Cannot convert 'float64_t *' to Python object

Error compiling Cython file:

... cdef np.ndarray[np.float64_t, ndim=2, mode='c'] outputs = np.empty((self.info.outputs, min_input_len - delta)) for i in range(self.info.outputs): c_outputs[i] = &outputs[i,0]

      ret = self.info.indicator(min_input_len, c_inputs, &c_options[0], c_outputs)
      if ret == ti.TI_INVALID_OPTION:
                 ^

tulipy/lib/init.pyx:126:20: cimported module has no attribute 'TI_INVALID_OPTION' building 'tulipy.lib' extension creating build/temp.linux-armv7l-cpython-39 creating build/temp.linux-armv7l-cpython-39/libindicators creating build/temp.linux-armv7l-cpython-39/tulipy creating build/temp.linux-armv7l-cpython-39/tulipy/lib gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Ilibindicators -Itulipy/lib -I/tmp/pip-build-env-va4190v9/overlay/lib/python3.9/site-packages/numpy/core/include -I/home/linaro/Python-3.9.9/Include -I/home/linaro/Python-3.9.9 -c libindicators/tiamalgamation.c -o build/temp.linux-armv7l-cpython-39/libindicators/tiamalgamation.o gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Ilibindicators -Itulipy/lib -I/tmp/pip-build-env-va4190v9/overlay/lib/python3.9/site-packages/numpy/core/include -I/home/linaro/Python-3.9.9/Include -I/home/linaro/Python-3.9.9 -c tulipy/lib/init.c -o build/temp.linux-armv7l-cpython-39/tulipy/lib/init.o tulipy/lib/init.c:1:2: error: #error Do not use this file, it is the result of a failed Cython compilation.

error Do not use this file, it is the result of a failed Cython compilation.

^~~~~

error: command '/usr/bin/gcc' failed with exit code 1

ERROR: Failed building wheel for newnewtulipy Failed to build newnewtulipy ERROR: Could not build wheels for newnewtulipy which use PEP 517 and cannot be installed directly WARNING: You are using pip version 21.2.4; however, version 23.0.1 is available. You should consider upgrading via the '/home/linaro/Python-3.9.9/python -m pip install --upgrade pip' command. linaro@linaro-alip:~$

ms32035 commented 1 year ago

I ran into the same, but as this is an unsupported fork of an unsupported fork :rofl: I think it would be best to use some other library instead

stucash commented 2 weeks ago

I simply can't believe they've got a $25 tier for something that depends on failed fork of an unsupported fork of an unsupported fork and oh it didn't get fixed in Linux now it's end of 2024. We are just not part of it.