安装 Ta-lib 会产生 gcc 错误

Installing Ta-lib creates gcc error

我在 mac 上尝试将 Ta-lib 作为全局包安装时出现 gcc 错误。

我收到以下错误:

   gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I//anaconda/include -arch x86_64 -I//anaconda/include -arch x86_64 -I//anaconda/lib/python3.6/site-packages/numpy/core/include -I/usr/include -I/usr/local/include -I/opt/include -I/opt/local/include -I//anaconda/include/python3.6m -c talib/common.c -o build/temp.macosx-10.7-x86_64-3.6/talib/common.o
    talib/common.c:242:10: fatal error: 'ta-lib/ta_defs.h' file not found
    #include "ta-lib/ta_defs.h"
             ^
    1 error generated.
    error: command 'gcc' failed with exit status 1

我不确定我是否理解这是什么意思? pip install Ta-lib 包缺少文件?这是有道理的,但它在我的 Ubuntu 服务器上安装得很好,只是我的 mac 有问题。 Ubuntu 也是 运行 Python 与相同版本的 Anaconda。

我的 gcc 版本如下:

➜  ~ which gcc
/usr/bin/gcc
➜  ~ gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 8.0.0 (clang-800.0.42.1)
Target: x86_64-apple-darwin16.4.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

我的Python安装信息如下:

➜  ~ which python
/anaconda/bin/python
➜  ~ python --version
Python 3.6.1 :: Anaconda custom (x86_64)

我实际上更喜欢将 Ta-lib 安装为全局 conda 包,因为我最终将它用于我的大多数非常特别的笔记本。

昨天我花了很多时间才解决这个问题,但我还是做不到。刚才我成功安装了TA-Lib!下面是解决方法。

首先我在Mac终端中运行'brew install ta-lib'。然后我打开PyCharm, file->default settings->project interpreter->choose python 3.6(my python version)->'+' 然后输入'TA-Lib' - > 安装->完成!

在解决问题之前,我先看了一下从网上下载的TA-Lib文件夹。在 README.md 中说

“有时安装会产生这样的构建错误:

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

这通常意味着它找不到基础 TA-Lib 库, 需要安装的依赖项。"

然后我找到

"### 依赖项

要将 TA-Lib 用于 python,您需要拥有 TA-Lib 已经安装:

Mac OS X

$ brew install ta-lib

Windows

下载ta-lib-0.4.0-msvc.zip 并解压到 C:\ta-lib “ 因此问题解决了。希望对您有所帮助。

我有一个类似的问题和一堆其他的 TA-Lib 安装问题(MAC OS)。

看起来除了您需要从 github 或 PIP 处理安装外,它应该已经安装在机器上(或某种...)

有什么帮助-->

卸载自制软件:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

然后重新安装:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

之后运行brew install ta-lib 然后将目录更改为带有 TA-Lib setup.py 的目录并继续执行命令 python setup.py install... 应该可以工作

1) 使用 brew 安装 ta-lib

brew install ta-lib

2) 然后 运行 pip install TA-Lib 命令。

上述步骤在大多数情况下应该有效,但我的一位朋友遇到了 gcc 的一些问题,如果您遇到与 gcc 相关的任何问题,请尝试安装 gcc。要安装 gcc,您可以使用命令:
brew install gcc

希望对您有所帮助。

我在这方面也遇到了很多问题。我在这里添加我的答案,因为我读过的答案中的 none 给了我这种方法,这对我来说是解决方案,适用于那些“自制软件”没有安装在 ta-lib 设置目录中的人正在寻找。

我之前用 brew install ta-lib 安装了“底层”ta-lib,但它仍然给出同样的错误。我用 git clone https://github.com/mrjbq7/ta-lib.git 下载了 ta-lib python 项目,这样我就可以检查和更改它正在寻找它没有找到的“底层”ta-lib 的路径。在 setup.py 中,您可以看到它正在寻找 brew 安装的 ta-lib 的目录。但我的不在任何提到的目录中。 我通过 运行 brew --prefix ta-lib 找到了 brew 安装 ta-lib 的位置。这给了我基本目录。然后我可以将相应的 include 和 lib 目录添加到目录列表中。然后,我从 github 下载的 ta-lib 项目中 运行 python setup.py install,它成功了!

更准确地说:运行 brew --prefix ta-lib 给了我类似 /Users/myuser/homebrew/opt/ta-lib 的东西。在第 25 行周围的文件 setup.py 中,有一个名为 include_dirs 的变量,它被设置为目录列表。我向该变量添加了包含目录的位置,即 /Users/myuser/homebrew/opt/ta-lib/include。在同一个文件的第 36 行附近,还有另一个变量 lib_talib_dirs,我还向该变量添加了 lib 目录的位置,即 /Users/myuser/homebrew/opt/ta-lib/lib。然后我运行python setup.py install等等

我将 mac Catalina 与 python3.8 一起使用,并且在 virtualenv 中工作。我尝试了此页面上的所有建议和其他几天没有运气,有一次我认为 brew TA-lib 版本(0.4.0)和 pip ta-lib 版本(0.4.19)之间的区别是这个问题所以尝试用 brew 安装 0.4.19 版,反之亦然,但没有成功。最后我放弃了,搬到了pandas-ta.

第二天,我开始收到与 Twisted 非常相似的错误消息,在研究该问题时,我了解到它不支持 python3.7 以外的版本,所以我创建了一个 conda 环境,它的安装变得轻而易举。用 TA-Lib 尝试了同样的事情,python3.7 conda 环境,brew install ta-lib 然后 pip install TA-Lib 瞧,TA-Lib-0.4.19 被安装了。

希望对遇到类似情况的人有所帮助。

这个 all-in-one-line 解决方案适用于 Linux-based 系统 - 在 macOS 和 Debian 上测试过。

brew install ta-lib && export TA_INCLUDE_PATH=$(brew --prefix ta-lib)/include && export TA_LIBRARY_PATH=$(brew --prefix ta-lib)/lib && pip install TA-Lib