TA-Lib error installing on Mac M1 (arm64)

Hi

I am unable to install this TA-Lib library on my mac M1, please suggest a workaround or how can i install and practice the notebooks.



thanks

Hi Jay,



Can you share the error you are getting while installing the library and the Anaconda and Python versions? It will help us understand and debug the error. Also, meanwhile, you can run the notebooks on Google Colab.

 

Hi Akshay



I get this error on all platforms, i.e. I tried installing on my Mac M1, Windows 10 , and even to my surprise on google colab. Not sure what is missing from my end. I used the pip install TA-Lib command for installation. Also i was unable to change my anaconda env to quantra_py due to some conflicts in packages. However please see the error below while installing TA_LIb


Collecting TA-lib
  Using cached TA-Lib-0.4.28.tar.gz (357 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: numpy in /Users/jaypitale/opt/anaconda3/lib/python3.8/site-packages (from TA-lib) (1.24.4)
Building wheels for collected packages: TA-lib
  Building wheel for TA-lib (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for TA-lib (pyproject.toml) did not run successfully.
  ? exit code: 1
  ??> [21 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.macosx-10.9-x86_64-cpython-38
      creating build/lib.macosx-10.9-x86_64-cpython-38/talib
      copying talib/abstract.py -> build/lib.macosx-10.9-x86_64-cpython-38/talib
      copying talib/deprecated.py -> build/lib.macosx-10.9-x86_64-cpython-38/talib
      copying talib/__init__.py -> build/lib.macosx-10.9-x86_64-cpython-38/talib
      copying talib/stream.py -> build/lib.macosx-10.9-x86_64-cpython-38/talib
      running build_ext
      building 'talib._ta_lib' extension
      creating build/temp.macosx-10.9-x86_64-cpython-38
      creating build/temp.macosx-10.9-x86_64-cpython-38/talib
      gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Users/jaypitale/opt/anaconda3/include -arch x86_64 -I/Users/jaypitale/opt/anaconda3/include -arch x86_64 -I/usr/include -I/usr/local/include -I/opt/include -I/opt/local/include -I/opt/homebrew/include -I/opt/homebrew/opt/ta-lib/include -I/private/var/folders/2y/dk3slpv11mv2l9t57_m2ybl00000gn/T/pip-build-env-f_iinm_2/normal/lib/python3.8/site-packages/numpy/core/include -I/Users/jaypitale/opt/anaconda3/include/python3.8 -c talib/_ta_lib.c -o build/temp.macosx-10.9-x86_64-cpython-38/talib/_ta_lib.o
      talib/_ta_lib.c:1082:10: fatal error: 'ta-lib/ta_defs.h' file not found
      #include "ta-lib/ta_defs.h"
               ^~~~~~~~~~~~~~~~~~
      1 error generated.
      <string>:77: UserWarning: Cannot find ta-lib library, installation may fail.
      error: command '/usr/bin/gcc' failed with exit code 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for TA-lib
Failed to build TA-lib
ERROR: Could not build wheels for TA-lib, which is required to install pyproject.toml-based projects
Note: you may need to restart the kernel to use updated packages.
------------------------------------------------------------------------------


thanks
Jay

Hi Jay,



Can you try installing talib using the following command on your Mac/Windows system:

conda install -c conda-forge ta-lib

You can also refer to this blog for more detailed steps.



Also, for Google Colab, you can run the following command:

url = 'https://anaconda.org/conda-forge/libta-lib/0.4.0/download/linux-64/libta-lib-0.4.0-h166bdaf_1.tar.bz2'
!curl -L $url | tar xj -C /usr/lib/x86_64-linux-gnu/ lib --strip-components=1
url = 'https://anaconda.org/conda-forge/ta-lib/0.4.19/download/linux-64/ta-lib-0.4.19-py310hde88566_4.tar.bz2'
!curl -L $url | tar xj -C /usr/local/lib/python3.10/dist-packages/ lib/python3.10/site-packages/talib --strip-components=3
import talib

This should run without any error, and you will be able to use talib.



Please let us know if you still face any issues. 





 

Hi Akshay



thanks a lot for quick revert, i was able to install talib on my mac. although had initial hiccups due to environment differences. 



One more thing i was not able to achieve is activating the quantra_py env, although it lists in my conda envs.



see the error log below, seems there are lot of conflicts in packages, i am currently using the anaconda3 env on my mac.





Last login: Sun Mar  3 10:58:38 on ttys001

(base) jaypitale@jays-air ~ % conda env create -f https://quantra.quantinsti.com/downloads/general/environment.yml

Collecting package metadata (repodata.json): done

Solving environment: / 

Found conflicts! Looking for incompatible packages.

This can take several minutes.  Press CTRL-C to abort.

failed                                                                                                                                                                    

Solving environment: &nbsp;

Found conflicts! Looking for incompatible packages.

This can take several minutes.  Press CTRL-C to abort.

failed                                                                                                                                                                 \  



UnsatisfiableError: The following specifications were found to be incompatible with each other:



Output in format: Requested package -> Available versions



Package numpy conflicts for:

pandas==1.4.4 -> numpy[version='>=1.19.5,<2.0a0|>=1.21.6,<2.0a0|>=1.21.5,<2.0a0']

scipy==1.7.0 -> numpy[version='>=1.19.5,<2.0a0']

ta-lib==0.4.19 -> numpy[version='>=1.21.6,<2.0a0']

scikit-learn==0.24.2 -> scipy -> numpy[version='>=1.19,<1.23|>=1.19,<1.25.0|>=1.19,<1.26.0|>=1.19.2,<2.0a0|>=1.19.4,<2.0a0|>=1.20.3,<1.23|>=1.20.3,<1.25|>=1.20.3,<1.26|>=1.20.3,<1.27|>=1.21.6,<1.27|>=1.21.6,<1.28|>=1.22.4,<1.28|>=1.26.3,<1.28|>=1.26.3,<2.0a0|>=1.22.4,<2.0a0|>=1.23.5,<1.28|>=1.23.5,<2.0a0|>=1.26.0,<1.28|>=1.26.0,<2.0a0|>=1.21.6,<2.0a0|>=1.23.5,<1.27|>=1.20.3,<2.0a0|>=1.21.6,<1.26|>=1.23.4,<1.26|>=1.23.4,<2.0a0|>=1.21.6,<1.25|>=1.21.5,<2.0a0|>=1.21.6,<1.23|>=1.21.4,<2.0a0|>=1.26.2,<1.28|>=1.21.5,<1.28|>=1.21,<1.27.0|>=1.23,<1.27.0|>=1.19.5,<1.27.0|>=1.23,<1.26.0|>=1.21,<1.26.0|>=1.21,<1.25.0|>=1.21,<1.23|>=1.19.5,<1.23.0|>=1.21.2,<1.23.0']

scikit-learn==0.24.2 -> numpy[version='>=1.19.5,<2.0a0']

pandas==1.4.4 -> bottleneck[version='>=1.3.1'] -> numpy[version='>=1.20.3,<2.0a0|>=1.22.4,<2.0a0|>=1.23.5,<2.0a0|>=1.26.4,<2.0a0|>=1.26.0,<2.0a0|>=1.23.4,<2.0a0|>=1.21.3,<2.0a0|>=1.22.3,<2.0a0|>=1.21.2,<2.0a0|>=1.26.3,<2.0a0|>=1.26.2,<2.0a0|>=1.21.4,<2.0a0']

numba==0.53.1 -> numpy[version='>=1.19.5,<1.21.0a0']

numpy==1.19.5



Package libffi conflicts for:

pandas==1.4.4 -> python[version='>=3.10,<3.11.0a0'] -> libffi[version='>=3.2.1,<3.3.0a0|>=3.3,<3.4.0a0|>=3.3,<4.0a0|>=3.4,<3.5|>=3.4,<4.0a0|>=3.4.2,<3.5.0a0']

scikit-learn==0.24.2 -> python[version='>=3.8,<3.9.0a0'] -> libffi[version='>=3.2.1,<3.3.0a0|>=3.3,<3.4.0a0|>=3.4,<4.0a0|>=3.4.2,<3.5.0a0|>=3.4,<3.5|>=3.3,<4.0a0']

numpy==1.19.5 -> python[version='>=3.9,<3.10.0a0'] -> libffi[version='>=3.2.1,<3.3.0a0|>=3.3,<3.4.0a0|>=3.4,<4.0a0|>=3.4.2,<3.5.0a0|>=3.4,<3.5|>=3.3,<4.0a0']

pip -> python[version='>=3.7'] -> libffi[version='>=3.2.1,<3.3.0a0|>=3.3,<3.4.0a0|>=3.4,<4.0a0|>=3.4.2,<3.5.0a0|>

Hi Jay,



To resolve this, I would suggest you remove Anaconda's current version (basically do a clean uninstall) and install the following version. 



Anaconda3-2022.05-MacOSX-x86_64.pkg



After this, you can retry creating the environment and it should work.