无法在Ubuntu上安装TA-Lib

问题描述 投票:0回答:4

我正在尝试在 Ubuntu 中安装 Python Ta-Lib,但是当我运行时:

pip install TA-Lib

我收到此错误:

Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-YfCSFn/TA-Lib/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-swmI7D-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-YfCSFn/TA-Lib/

我已经安装了:

sudo apt-get install python3-dev

并安装了 Ta-lib

我该如何解决这个问题?

python ubuntu
4个回答
36
投票

能够加载python3。

步骤:

  1. http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz 下载

  2. 解压

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

  3. cd /../ta-lib

  4. ./configure --prefix=/usr

  5. make

  6. sudo make install

  7. sudo apt upgrade

  8. pip install ta-lib
    pip install TA-Lib

  9. 检查

    import talib


6
投票

这一直是一个棘手的问题,但我制作了一个脚本,它在多个 Ubuntu 物理、VM 和服务器实例(包括 GitHub Actions)中忠实地为我服务。

它有点长,但很全面,并且适用于我需要的每个 Ubuntu 实例。它包括一些先前导致错误的预防措施。

sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
sudo apt install wget -y
sudo add-apt-repository ppa:deadsnakes/ppa -y
sudo apt-get install build-essential -y
sudo apt install python3.10-dev -y
sudo apt-get install python3-dev -y

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

wget 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD' -O './config.guess'
wget 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD' -O './config.sub'
./configure --prefix=/usr
make
sudo make install

sudo rm -rf ta-lib
sudo rm -rf ta-lib-0.4.0-src.tar.gz

pip install ta-lib

它由许多步骤组成...

  1. 使用 apt 更新内置软件包。
  2. 添加 deadsnakes 存储库。
  3. 安装
    build-essential
    python-dev
    python3-dev
    python3.10-dev
    )。
  4. 使用
    wget
    下载 TA-Lib tarball。
  5. 下载更新的 make 识别器文件,以防止
    make
    make install
    的常见问题。
  6. make
    TA-Lib 和
    make install
    它。
  7. 清理混乱。
  8. 使用
    pip
    安装以确保一切正常。 (
    pip
    将安装最新版本的TA-Lib,
    0.4.24
    ,尽管我们只能下载
    0.4.0
    的源代码。这很好用。)

因为我经常使用这个,所以我把它变成了gist,目的是直接用

curl
访问脚本。

只需从要点页面获取原始链接并按如下方式使用它。

curl https://gist.githubusercontent.com/preritdas/bunchofrandomstuffhere/install-talib-ubuntu.sh | sudo bash

在运行命令之前,请确保您已

sudo
激活,以防止出现问题。它将作为脚本运行上述所有命令,并在大约 4-5 分钟内安装 TA-Lib(根据我的经验,平均时间)。

这是在 Ubuntu 22.04 的新服务器实例上运行的 shell 记录。

asciicast

总而言之,我希望这会有所帮助;对我来说,它让曾经令人沮丧和不稳定的过程变得容易。


3
投票

似乎其他人也有这个问题

引用已接受的答案:

似乎您的画中画无法按照“导入 setuptools”在错误中。首先尝试以下操作,然后尝试运行您的 再次 pip 安装。

> sudo pip install -U setuptools

或者如果引用他的评论不起作用:

尝试这个“sudo -H pip install TA-Lib”

正如 Filipe Ferminiano 在评论中所说,如果这仍然不能解决问题,那么您可以尝试此链接上所说的内容。

再次引用已接受的答案:

Your sudo is not getting the right python. This is a known behaviour of sudo in Ubuntu. See this question for more info. You need to make sure that sudo calls the right python, either by using the full path:
sudo /usr/local/epd/bin/python setup.py install

或者通过执行以下操作(在 bash 中):

alias sudo='sudo env PATH=$PATH'
sudo python setup.py install

这是问题他正在谈论

如果已接受的答案解决了您的问题,请给予认可。


0
投票

我创建了这个名为

install_talib.py
的 Python 文件。刚刚运行该文件并安装了 ta-lib。对于我来说这是一个完美的解决方案!.

import subprocess
import os
import sys

subprocess.run(["wget", "http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz"])
subprocess.run(["tar", "-xzf", "ta-lib-0.4.0-src.tar.gz"])
os.chdir("ta-lib")
subprocess.run(["./configure", "--prefix=/usr"])
subprocess.run(["make"])
subprocess.run(["sudo", "make", "install"])
subprocess.run([sys.executable, "-m", "pip", "install", "ta-lib"])
© www.soinside.com 2019 - 2024. All rights reserved.