blankly-finance / newnewtulipy

An actively maintained version of tulipy for modern python versions. Used in the blankly-finance/blankly package.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build error on armv7l Debian (Tinkerboard R2.0)

chaterpaul opened this issue · comments

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 pypa/pip#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 pypa/pip#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:~$

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