【问题标题】:Python TA-lib install error, how solve it?Python TA-lib 安装报错,如何解决?
【发布时间】:2017-11-29 04:09:26
【问题描述】:

我使用以下命令安装 TA-lib,

pip install TA-lib

但收到此错误“命令‘gcc’失败,退出状态为 1”:

检查了Troubleshooting,安装了gcc、python-devel、libffi-devel、openssl-devel,但还是不行!

然后使用conda install -c quantopian ta-lib=0.4.9 安装talib 但显示 错误“发现以下规范存在冲突:- py-xgboost,- ta-lib 0.4.9*” 然后conda info ta-lib, it return the"NoPackagesFoundError: Package missing in current linux-64 channels"

【问题讨论】:

标签: python linux gcc ta-lib


【解决方案1】:

我遇到了完全相同的问题,并且能够解决它并在 Linux 和我的 OSX 笔记本电脑上安装 TA-lib。我将在这里坚持使用 linux 指令,特别是 CentOS,但两者的技巧是相同的......你必须在机器上安装 TA-lib 二进制库,然后 python 包装器才能使用 pip 安装。

我使用的参考:ttps://github.com/mrjbq7/ta-lib

如果此命令失败:

pip install TA-lib

这样抱怨 ta_libc 头文件:

func.c:256:28: fatal error: ta-lib/ta_libc.h: No such file or directory
compilation terminated.

在安装 python 包装器之前,您需要安装 TA-lib 二进制文件。我是这样下载的:

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

然后解压,编译安装:

tar -xvf ta-lib-0.4.0-src.tar.gz 
cd ta-lib
./configure --prefix=/usr
make
sudo make install
sudo ldconfig

如果您的机器上没有 gcc 和/或 python3-dev,则上述步骤将给您带来困难。最初他们对我大发雷霆,所以我满足了依赖关系:

sudo yum install gcc
sudo yum install python36-dev

然后从头开始重新运行这些步骤,这次成功了。上述解决方案适用于我的情况。

希望对你有帮助,祝你好运!

顺便说一句。我第一次在这里回答,我希望它对某人有所帮助,我过去使用 StackOverflow 解决了很多问题,所以我希望回报。

2018-08-30 UDPATE:我一直遇到编译问题,特别是下面列出的错误会重复发生。事实证明,我在虚拟机中没有足够的 RAM (1GB)。解决方案参考:(https://github.com/mrjbq7/ta-lib/issues/133)所以我升级了 RAM(2GB)并且问题消失了。

talib/_ta_lib.c:208671:15: warning: assignment from incompatible pointer type [enabled by default]

2021-03-06 UDPATE:OSX Catalina 更新!在 OSX Catalina (10.15+) 上编译 TA-lib 时,上述说明不起作用,我不得不修改:

tar -xvf ta-lib-0.4.0-src.tar.gz 
cd ta-lib 
./configure 
make
sudo make install 

之后,pip 安装工作正常。 ——

【讨论】:

  • 应该是sudo yum install python36-devel
  • 感谢 ManualSchneid3r 清理我的说明!干杯!
  • OSX Catalina 更新!在 OSX Catalina (10.15+) 上编译 TA-lib 时,上述说明不起作用,我不得不修改: ``` tar -xvf ta-lib-0.4.0-src.tar.gz cd ta-lib 。 /configure make sudo make install ``` 之后 pip install 工作正常。
【解决方案2】:

我已经解决了 conda environment.using 的问题

conda install -c quantopian ta-lib 

【讨论】:

    【解决方案3】:

    所以经过一番探索,我发现在尝试安装 TA-lib 时通常会出现两个主要问题。

    1. 在运行 pip install 命令之前,您没有预先安装 TA-lib 二进制文件
    2. 您有多个版本的 python,这会破坏安装

    问题 1:
    首先安装二进制文件:

    1. 下载ta-lib-0.4.0-src.tar.gz
    2. tar -xzf ta-lib-0.4.0-src.tar.gz
    3. cd ta-lib/
    4. ./configure --prefix=/usr
    5. 制作
    6. sudo make install

    然后运行pip install TA-lib

    问题 2
    当您安装了不同的 Python 版本并且您使用的 pip 不是系统的 pip 时,可能会出现此问题。在这种情况下,非系统 pip 将找不到正确版本的 Python 标头。导致以下错误: 命令 'x86_64-linux-gnu-gcc' 失败,退出状态为 1

    在这种情况下,解决方法是找到正确的python头:

    find / -iname 'Python.h'
    

    输出:

    /usr/include/python3.7m/Python.h
    /usr/include/python3.6m/Python.h
    /home/ubuntu/workspace/blender-git/lib/linux_centos7_x86_64/python/include/python3.7m/Python.h
    /home/ubuntu/miniconda3/pkgs/python-3.8.5-h7579374_1/include/python3.8/Python.h
    /home/ubuntu/miniconda3/pkgs/python-3.7.0-h6e4f718_3/include/python3.7m/Python.h
    /home/ubuntu/miniconda3/include/python3.8/Python.h
    /home/ubuntu/miniconda3/envs/sim/include/python3.7m/Python.h
    /home/ubuntu/src/blender-deps/Python-3.7.7/Include/Python.h
    /opt/lib/python-3.7.7/include/python3.7m/Python.h
    

    然后导出正确的:

    export CPPFLAGS=-I/home/ubuntu/src/blender-deps/Python-3.7.7/Include
    

    后跟 pip install 命令。

    只需将 pip 切换到另一个版本的 python(例如):

    pip3.6 install TA-lib 
    

    【讨论】:

      【解决方案4】:

      如果下面的答案对您不起作用(在我的情况下它没有),您可以找到已编译的 whl 文件并从那里安装。

      这里是 a link 用于 ta-lib 的已编译 whl 文件。

      【讨论】:

      • 顺便说一句,这些文件仅适用于 Windows。
      【解决方案5】:

      这是我在 Linux 中解决此问题的方法: 首先,我从以下位置下载了 C 依赖项: https://ta-lib.org/hdr_dw.html 使用以下命令将其安装在本地目录中:

      ./configure --prefix=<local_path_to_install_c_library>
      make
      make install
      

      然后用pip安装ta-lib。确保将--global-options 指向本地图书馆位置pip

      pip install --upgrade --global-option=build_ext --global-option="-L<local_path_to_install_c_library>/lib" --global-option="-I<local_path_to_install_c_library>/include" --install-option="--prefix=<local_path_to_install_python_lib>" ta-lib
      

      【讨论】:

        【解决方案6】:

        你可以把它放在一个叫做install_talib.sh的脚本中,然后从命令行运行./install_talib.sh

        wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz
        if [ ! -f "ta-lib/CHANGELOG.TXT" ]; then
          tar zxvf ta-lib-0.4.0-src.tar.gz
          cd ta-lib && sed -i.bak "s|0.00000001|0.000000000000000001 |g" src/ta_func/ta_utility.h && ./configure && make && sudo make install && cd ..
        else
          echo "TA-lib already installed, skipping download and build."
          cd ta-lib && sudo make install && cd ..
        fi
        

        您可能需要为install_talib.sh 文件添加权限。您可以使用

        chmod u+x install_talib.sh

        【讨论】:

          猜你喜欢
          • 2017-03-09
          • 2020-05-05
          • 1970-01-01
          • 1970-01-01
          • 2020-06-14
          • 1970-01-01
          • 2015-03-22
          • 2023-02-19
          • 2021-12-15
          相关资源
          最近更新 更多