我使用以下命令安装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"
答案 0 :(得分:7)
我遇到了完全相同的问题,并且能够解决它并在Linux和我的OSX笔记本电脑上安装TA-lib。我在这里特别坚持使用CentOS的linux指令,但两者的诀窍是相同的......在python包装器用pip安装之前,你必须在机器上安装TA-lib二进制库。
我使用的参考: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]
答案 1 :(得分:1)
如果以下答案对您不起作用(在我的情况下没有),您可以找到已编译的whl文件并从那里安装。
这是针对ta-lib的已编译whl文件的a link。
答案 2 :(得分:1)
所以经过一些探索,我发现在尝试安装 TA-lib 时通常会出现两个主要问题。
问题 1:
首先安装二进制文件:
和运行 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
答案 3 :(得分:0)
我已经使用conda环境解决了这个问题。
conda install -c quantopian ta-lib
答案 4 :(得分:0)
这是我在 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
答案 5 :(得分:0)
您可以将其放入名为 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