安装 Ta-lib 时出现 gcc 错误

5

当我试图在我的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也使用Anaconda运行Python,版本相同。
我的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包,因为我会在大多数临时工作笔记本中使用它。


小更新,这似乎是一个Python版本问题。在Python27x conda环境中安装可以正常工作。该软件包应该支持Python3... - Kimmo Hintikka
这是另一种适用于Linux和Mac的解决方案。 - Sam
6个回答

16

昨天我花了很多时间来解决这个问题,但我仍然无法解决它。刚刚我成功安装了TA-Lib!以下是解决方案。

首先我在Mac终端中运行'brew install ta-lib'。然后我打开PyCharm,文件->默认设置->项目解释器->选择python 3.6(我的python版本)->'+'并输入'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库, 需要安装此依赖项。"

然后我找到:

"### 依赖关系

要在Python中使用TA-Lib,您需要已经安装了TA-Lib

Mac OS X

$ brew install ta-lib

Windows

下载ta-lib-0.4.0-msvc.zip并解压到C:\ta-lib " 因此问题得以解决。希望这能帮到您。


2

我也遇到了很多问题。这里添加我的答案,因为我读过的所有答案都没有给出我这个方法,这对于那些"homebrew"没有安装在ta-lib设置查找的目录中的人来说是解决方案。

我之前已经用brew install ta-lib安装了"underlying" ta-lib,但仍然出现相同的错误。我使用git clone https://github.com/mrjbq7/ta-lib.git下载了ta-lib python项目,以便检查和更改它寻找未找到的"underlying" ta-lib的路径。在setup.py中,您可以看到它正在查找由brew安装的ta-lib的目录。但我的ta-lib没有在其中任何一个目录中。 通过运行brew --prefix ta-lib找到brew安装ta-lib的位置。这给了我基本目录。然后我可以将相应的包含和lib目录添加到目录列表中。然后我从github下载的ta-lib项目中运行python setup.py install,它起作用了!

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


2

1) 使用brew安装 ta-lib

brew install ta-lib

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

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

希望这可以帮助到您。


1
这个一行的解决方案在Linux系统上适用——已经在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

您的回答可以通过添加更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认您的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - user11717481

0

我使用带有Python3.8的mac Catalina操作系统,并在virtualenv中工作。我尝试了这个页面和其他页面上的所有建议,但是几天都没有成功,有一次我认为brew TA-lib版本(0.4.0)和pip ta-lib版本(0.4.19)之间的差异是问题所在,所以尝试安装版本0.4.19与brew并相反无果。最后我放弃了,转而使用pandas-ta。

第二天,我开始遇到与Twisted非常相似的错误信息,并在研究该问题时了解到它不支持python3.7之外的版本,因此我创建了一个conda环境并且安装很容易。尝试使用TA-Lib进行相同的操作,python3.7 conda环境,brew install ta-lib然后pip install TA-Lib,瞧,TA-Lib-0.4.19被安装了。

我希望这能帮助任何处于类似情况的人。


0

我也遇到了一些TA-Lib安装问题(MAC OS)。

看起来除了需要从github或PIP进行安装之外,它应该已经在机器上安装好了(或者类似于这样...)

解决方法如下:

卸载homebrew:

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,应该就可以了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接