Linux TA_Lib安装

Linux下TA_Lib使用conda安装成功
部署运行你感兴趣的模型镜像

安装步骤

下载

wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz

解压

tar -xzf ta-lib-0.4.0-src.tar.gz

进入解压目录

cd ta-lib/

配置

./configure --prefix=/usr

配置

./configure --prefix=/usr

编译安装

make && sudo make install

安装python ta-lib

pip install TA-Lib

好了,以上是网上的各种步骤,不过都不能安装成功。

gcc -pthread -B /opt/anaconda3/envs/py37/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -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/tmp/pip-build-env-gkhba782/normal/lib/python3.7/site-packages/numpy/core/include -I/opt/py37_ssh/include -I/opt/anaconda3/envs/py37/include/python3.7m -c talib/_ta_lib.c -o build/temp.linux-x86_64-cpython-37/talib/_ta_lib.o
      In file included from /tmp/pip-build-env-gkhba782/normal/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1969:0,
                       from /tmp/pip-build-env-gkhba782/normal/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,
                       from /tmp/pip-build-env-gkhba782/normal/lib/python3.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,
                       from talib/_ta_lib.c:1235:
      /tmp/pip-build-env-gkhba782/normal/lib/python3.7/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]
       #warning "Using deprecated NumPy API, disable it with " \
        ^
      talib/_ta_lib.c: In function ‘__pyx_f_5numpy_5dtype_8itemsize_itemsize’:
      talib/_ta_lib.c:10083:3: warning: implicit declaration of function ‘PyDataType_ELSIZE’ [-Wimplicit-function-declaration]
         __pyx_r = PyDataType_ELSIZE(__pyx_v_self);
         ^
      talib/_ta_lib.c: In function ‘__pyx_f_5numpy_5dtype_9alignment_alignment’:
      talib/_ta_lib.c:10096:3: warning: implicit declaration of function ‘PyDataType_ALIGNMENT’ [-Wimplicit-function-declaration]
         __pyx_r = PyDataType_ALIGNMENT(__pyx_v_self);
         ^
      talib/_ta_lib.c: In function ‘__pyx_f_5numpy_5dtype_6fields_fields’:
      talib/_ta_lib.c:10113:3: warning: implicit declaration of function ‘PyDataType_FIELDS’ [-Wimplicit-function-declaration]
         __pyx_t_1 = PyDataType_FIELDS(__pyx_v_self);
         ^
      talib/_ta_lib.c:10113:13: warning: assignment makes pointer from integer without a cast [enabled by default]
         __pyx_t_1 = PyDataType_FIELDS(__pyx_v_self);
                   ^
      talib/_ta_lib.c: In function ‘__pyx_f_5numpy_5dtype_5names_names’:
      talib/_ta_lib.c:10134:3: warning: implicit declaration of function ‘PyDataType_NAMES’ [-Wimplicit-function-declaration]
         __pyx_t_1 = PyDataType_NAMES(__pyx_v_self);
         ^
      talib/_ta_lib.c:10134:13: warning: assignment makes pointer from integer without a cast [enabled by default]
         __pyx_t_1 = PyDataType_NAMES(__pyx_v_self);
                   ^
      talib/_ta_lib.c: In function ‘__pyx_f_5numpy_5dtype_8subarray_subarray’:
      talib/_ta_lib.c:10151:3: warning: implicit declaration of function ‘PyDataType_SUBARRAY’ [-Wimplicit-function-declaration]
         __pyx_r = PyDataType_SUBARRAY(__pyx_v_self);
         ^
      talib/_ta_lib.c:10151:11: warning: assignment makes pointer from integer without a cast [enabled by default]
         __pyx_r = PyDataType_SUBARRAY(__pyx_v_self);
                 ^
      talib/_ta_lib.c: In function ‘__pyx_f_5numpy_5dtype_5flags_flags’:
      talib/_ta_lib.c:10164:3: warning: implicit declaration of function ‘PyDataType_FLAGS’ [-Wimplicit-function-declaration]
         __pyx_r = PyDataType_FLAGS(__pyx_v_self);
         ^
      talib/_ta_lib.c: In function ‘__pyx_f_5numpy_9broadcast_7numiter_numiter’:
      talib/_ta_lib.c:10177:3: warning: implicit declaration of function ‘PyArray_MultiIter_NUMITER’ [-Wimplicit-function-declaration]
         __pyx_r = PyArray_MultiIter_NUMITER(__pyx_v_self);
         ^
      talib/_ta_lib.c: In function ‘__pyx_f_5numpy_9broadcast_4size_size’:
      talib/_ta_lib.c:10190:3: warning: implicit declaration of function ‘PyArray_MultiIter_SIZE’ [-Wimplicit-function-declaration]
         __pyx_r = PyArray_MultiIter_SIZE(__pyx_v_self);
         ^
      talib/_ta_lib.c: In function ‘__pyx_f_5numpy_9broadcast_5index_index’:
      talib/_ta_lib.c:10203:3: warning: implicit declaration of function ‘PyArray_MultiIter_INDEX’ [-Wimplicit-function-declaration]
         __pyx_r = PyArray_MultiIter_INDEX(__pyx_v_self);
         ^
      talib/_ta_lib.c: In function ‘__pyx_f_5numpy_9broadcast_2nd_nd’:
      talib/_ta_lib.c:10216:3: warning: implicit declaration of function ‘PyArray_MultiIter_NDIM’ [-Wimplicit-function-declaration]
         __pyx_r = PyArray_MultiIter_NDIM(__pyx_v_self);
         ^
      talib/_ta_lib.c: In function ‘__pyx_f_5numpy_9broadcast_10dimensions_dimensions’:
      talib/_ta_lib.c:10229:3: warning: implicit declaration of function ‘PyArray_MultiIter_DIMS’ [-Wimplicit-function-declaration]
         __pyx_r = PyArray_MultiIter_DIMS(__pyx_v_self);
         ^
      talib/_ta_lib.c:10229:11: warning: assignment makes pointer from integer without a cast [enabled by default]
         __pyx_r = PyArray_MultiIter_DIMS(__pyx_v_self);
                 ^
      talib/_ta_lib.c: In function ‘__pyx_f_5numpy_9broadcast_5iters_iters’:
      talib/_ta_lib.c:10242:3: warning: implicit declaration of function ‘PyArray_MultiIter_ITERS’ [-Wimplicit-function-declaration]
         __pyx_r = PyArray_MultiIter_ITERS(__pyx_v_self);
         ^
      talib/_ta_lib.c:10242:11: warning: assignment makes pointer from integer without a cast [enabled by default]
         __pyx_r = PyArray_MultiIter_ITERS(__pyx_v_self);
                 ^
      gcc -pthread -shared -B /opt/anaconda3/envs/py37/compiler_compat -L/opt/anaconda3/envs/py37/lib -Wl,-rpath=/opt/anaconda3/envs/py37/lib -Wl,--no-as-needed -Wl,--sysroot=/ build/temp.linux-x86_64-cpython-37/talib/_ta_lib.o -L/usr/lib -L/usr/local/lib -L/usr/lib64 -L/usr/local/lib64 -L/opt/lib -L/opt/local/lib -L/opt/homebrew/lib -L/opt/homebrew/opt/ta-lib/lib -Wl,--enable-new-dtags,-R/usr/lib -Wl,--enable-new-dtags,-R/usr/local/lib -Wl,--enable-new-dtags,-R/usr/lib64 -Wl,--enable-new-dtags,-R/usr/local/lib64 -Wl,--enable-new-dtags,-R/opt/lib -Wl,--enable-new-dtags,-R/opt/local/lib -Wl,--enable-new-dtags,-R/opt/homebrew/lib -Wl,--enable-new-dtags,-R/opt/homebrew/opt/ta-lib/lib -lta-lib -o build/lib.linux-x86_64-cpython-37/talib/_ta_lib.cpython-37m-x86_64-linux-gnu.so
      /opt/anaconda3/envs/py37/compiler_compat/ld: cannot find -lta-lib: No such file or directory
      collect2: error: ld returned 1 exit status
      /tmp/pip-install-b792r0m1/ta-lib_21d1a8b28e334a2190c038cdae0be108/setup.py:75: UserWarning: Cannot find ta-lib library, installation may fail.
        warnings.warn('Cannot find ta-lib library, installation may fail.')
      /tmp/pip-build-env-gkhba782/overlay/lib/python3.7/site-packages/setuptools/config/_apply_pyprojecttoml.py:69: SetuptoolsWarning: `install_requires` overwritten in `pyproject.toml` (dependencies)
        corresp(dist, value, root_dir)
      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.

各种报错,也换了各种版本,解决不了。
然后参考别人,使用conda安装成功了。

##安装方法

conda install -c conda-forge ta-lib

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

<think>好的,用户想安装TA-Lib库。首先我需要回忆一下TA-Lib安装步骤。TA-Lib是一个用于技术分析的Python库,但它依赖于底层的C库,所以安装时需要先安装这个C库,然后再安装Python的包装库。 首先,用户可能需要安装系统级的依赖。在Linux上,通常使用包管理器,比如apt-get。我记得需要安装ta-lib-dev或者类似的开发包。例如,Ubuntu的话,可以运行sudo apt-get install libta-lib-dev。如果用户用的是其他发行版,可能需要不同的命令,比如Fedora的dnf或者CentOS的yum。 然后是macOS的情况。用Homebrew的话,可以brew install ta-lib。不过有时候可能需要指定源,比如ta-lib的官方源可能不在默认的brew仓库里,这时候需要添加tap。用户如果遇到问题,可能需要检查Homebrew的配置。 接下来是Windows用户。TA-Lib的官方提供了Windows的二进制文件,用户需要去官网下载对应的版本,并安装到系统路径,或者指定安装路径。这一步可能会比较复杂,特别是对于没有经验的用户来说,设置环境变量或者路径可能会有困难。 安装完系统依赖后,Python层的安装可以通过pip install TA-Lib。但有时候会因为依赖问题导致编译失败,这时候需要确保Python的开发工具已经安装,比如python3-dev或者对应的包。用户如果遇到编译错误,可能需要检查GCC的版本,或者安装必要的编译工具,比如在Ubuntu上安装build-essential。 另外,用户可能在使用虚拟环境,这时候需要确保虚拟环境中也能访问到系统安装TA-Lib库。如果安装过程中出现权限问题,可能需要使用sudo或者调整权限设置。 还有可能遇到的问题包括,64位和32位库的冲突,尤其是在Windows上。用户需要下载匹配的TA-Lib版本,与他们的Python架构一致。例如,64位的Python需要64位的TA-Lib库。 有时候网络问题也可能导致pip安装失败,这时候可以尝试使用镜像源,比如清华的镜像源,加速下载过程。例如,pip install TA-Lib -i https://pypi.tuna.tsinghua.edu.cn/simple。 如果用户已经安装了系统依赖,但pip仍然报错,可能需要检查是否安装了正确版本的TA-Lib开发文件,或者尝试从源代码编译安装。这时候可能需要克隆TA-Lib的GitHub仓库,进行编译安装,然后再安装Python包。 最后,测试安装是否成功,可以通过Python导入talib并运行一个简单的函数,比如talib.SMA,看看是否有错误提示。如果成功导入并运行,说明安装正确。 总结一下,安装步骤大致分为两步:安装系统依赖,然后安装Python包。不同操作系统步骤不同,需要根据用户的环境提供具体的指导。同时,注意处理可能出现的依赖问题和编译错误,确保所有必要的开发工具和库已经正确安装。</think>### 如何安装TA-LibTA-Lib(Technical Analysis Library)是一个用于金融技术分析的开源库,包含150多种技术指标的计算函数。安装分为两个步骤:**安装底层C语言库**和**安装Python封装库**。以下是具体步骤: --- #### 一、安装底层TA-Lib C库 根据操作系统选择对应方法: 1. **Ubuntu/Debian** ```bash sudo apt-get update sudo apt-get install libta-lib-dev ``` 2. **Fedora/CentOS/RHEL** ```bash sudo dnf install ta-lib-devel # Fedora sudo yum install ta-lib-devel # CentOS/RHEL ``` 3. **macOS(通过Homebrew)** ```bash brew install ta-lib ``` 4. **Windows** - 下载预编译库:访问[TA-Lib官网](https://ta-lib.org),选择`ta-lib-0.4.0-msvc.zip`(64位)或`ta-lib-0.4.0-msvc.zip`(32位)。 - 解压到`C:\ta-lib`,并将`C:\ta-lib\c\bin`添加到系统环境变量`PATH`[^1]。 --- #### 二、安装Python封装库 使用`pip`安装Python接口: ```bash pip install TA-Lib ``` 若遇到编译错误(如GCC版本问题),需确保: - **Linux/macOS**:安装Python开发工具(如`python3-dev`)。 - **Windows**:安装Microsoft Visual C++ Build Tools,并确保TA-Lib路径正确[^2]。 --- #### 三、验证安装 ```python import talib print(talib.SMA([1.0, 2.0, 3.0], timeperiod=2)) # 输出应为[nan, 1.5, 2.5] ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值