尝试在我的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包,因为我最终使用它与我的大多数笔记本电脑非常特别的工作。
答案 0 :(得分:7)
Yesterday it took me much time to solve the problem but I still couldn't make it. Just now I succeeded to install TA-Lib! Below is the solution.
First I run 'brew install ta-lib' in the Mac terminal. Then I open the PyCharm, file->default settings->project interpreter->choose python 3.6(my python version)->'+' and input 'TA-Lib' -> install->FINISH!
Before I solve the problem, I have a look at the TA-Lib folder downloaded from the Internet. It's said in the README.md that
"Sometimes installation will produce build errors like this:
func.c:256:28: fatal error: ta-lib/ta_libc.h: No such file or directory
compilation terminated.
This typically means that it can't find the underlying TA-Lib
library,
a dependency which needs to be installed."
and then I find
"### Dependencies
To use TA-Lib for python, you need to have the TA-Lib already installed:
Mac OS X
$ brew install ta-lib
Download ta-lib-0.4.0-msvc.zip
and unzip to C:\ta-lib
"
Therefore the problem is solved. I hope this will help you.
答案 1 :(得分:1)
1)使用brew安装ta-lib
。
brew install ta-lib
2)然后运行pip install TA-Lib
命令。
在大多数情况下,上述步骤应该有效,但是我的一位朋友遇到了gcc
的问题,如果您遇到与gcc
相关的任何问题,请尝试安装{{1} }。要安装gcc
,可以使用以下命令:
gcc
希望这会有所帮助。
答案 2 :(得分:1)
我也遇到了很多问题。我在这里添加我的答案,因为我读过的所有答案都没有给我这种方法,这对我来说是解决方案,并且适用于那些“自制软件”没有安装在 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
的结果。在文件 setup.py
的第 25 行附近,有一个名为 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
等
答案 3 :(得分:0)
我遇到了类似的问题以及其他许多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
...应该工作
答案 4 :(得分:0)
我使用带有 python3.8 的 mac Catalina 并且在 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 和 voila,安装了 TA-Lib-0.4.19。
我希望这能帮助任何有类似情况的人。