栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

windows下 python 使用 pip 安装TA-Lib报错的原因及解决方法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

windows下 python 使用 pip 安装TA-Lib报错的原因及解决方法

windows下 python 使用 pip 安装TA-Lib报错的原因及解决方法
    • 问题环境
    • 问题描述
    • 问题原因 & 解决办法

问题环境

Windows 10 x64 、python 3.8.6

问题描述

Windows 10 x64 下使用pip install ta-lib命令安装ta-lib库时会报错,错误信息为:talib/_ta_lib.c(680): fatal error C1083: 无法打开包括文件: “ta_libc.h”: No such file or directory.

安装过程日志如下:

(venv) F:CodeProj>pip install ta-lib==0.4.24
Collecting ta-lib==0.4.24
  Using cached TA-Lib-0.4.24.tar.gz (269 kB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: numpy in f:codeprojvenvlibsite-packages (from ta-lib==0.4.24) (1.21.5)
Using legacy 'setup.py install' for ta-lib, since package 'wheel' is not installed.
Installing collected packages: ta-lib
  Running setup.py install for ta-lib ... error
  error: subprocess-exited-with-error

  × Running setup.py install for ta-lib did not run successfully.
  │ exit code: 1
  ╰─> [29 lines of output]
      C:UserszhouAppDataLocalTemppip-install-3z8q087gta-lib_61610fdfdd3848f58b5fb3d2ab780bf1setup.py:77: UserWarning: Cannot find ta-lib library, installation may fa
il.
        warnings.warn('Cannot find ta-lib library, installation may fail.')
      running install
      f:codeprojvenvlibsite-packagessetuptoolscommandinstall.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other sta
ndards-based tools.
        warnings.warn(
      running build
      running build_py
      creating build
      creating buildlib.win-amd64-cpython-38
      creating buildlib.win-amd64-cpython-38talib
      copying talibabstract.py -> buildlib.win-amd64-cpython-38talib
      copying talibdeprecated.py -> buildlib.win-amd64-cpython-38talib
      copying talibstream.py -> buildlib.win-amd64-cpython-38talib
      copying talibtest_abstract.py -> buildlib.win-amd64-cpython-38talib
      copying talibtest_data.py -> buildlib.win-amd64-cpython-38talib
      copying talibtest_func.py -> buildlib.win-amd64-cpython-38talib
      copying talibtest_pandas.py -> buildlib.win-amd64-cpython-38talib
      copying talibtest_polars.py -> buildlib.win-amd64-cpython-38talib
      copying talibtest_stream.py -> buildlib.win-amd64-cpython-38talib
      copying talib__init__.py -> buildlib.win-amd64-cpython-38talib
      running build_ext
      building 'talib._ta_lib' extension
      creating buildtemp.win-amd64-cpython-38
      creating buildtemp.win-amd64-cpython-38Release
      creating buildtemp.win-amd64-cpython-38Releasetalib
      "D:Program Files (x86)Microsoft Visual Studio2017EnterpriseVCToolsMSVC14.16.27023binHostX86x64cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -Ic:ta-libcinc
lude -If:codeprojvenvlibsite-packagesnumpycoreinclude -If:codeprojvenvinclude "-ID:Program FilesPythonPython38include" "-ID:Program FilesPythonPyt
hon38Include" "-ID:Program Files (x86)Microsoft Visual Studio2017EnterpriseVCToolsMSVC14.16.27023ATLMFCinclude" "-ID:Program Files (x86)Microsoft Visual Studio
2017EnterpriseVCToolsMSVC14.16.27023include" "-ID:Windows Kits10include10.0.17763.0ucrt" "-ID:Windows Kits10include10.0.17763.0shared" "-ID:Windows Kits10
include10.0.17763.0um" "-ID:Windows Kits10include10.0.17763.0winrt" "-ID:Windows Kits10include10.0.17763.0cppwinrt" /Tctalib/_ta_lib.c /Fobuildtemp.win-amd64-cp
ython-38Releasetalib/_ta_lib.obj
      _ta_lib.c
      talib/_ta_lib.c(680): fatal error C1083: 无法打开包括文件: “ta_libc.h”: No such file or directory
      error: command 'D:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe' failed with exit code 2
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> ta-lib

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

(venv) F:CodePro>
问题原因 & 解决办法
  1. 不能直接pip下载。下载的是tar.gz的文件。windows不能解压运行。看了下清华的地址列表。只有tar.gz的和一个压缩包。其他地址没看。
    直接下载压缩包文件。在使用python setup.py install的时候会使用到c++。然后又是一堆缺少dll的麻烦。dll补全以后又不能调用。。。

  2. 在 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 找到ta-lib库。下载对应的版本的whl文件。
    比如:TA_Lib-0.4.24-cp38-cp38-win_amd64.whl(前面是库版本,后面是对应的python版本。最后的数字代表windows系统。32位或者64位。电脑属性查看或者cmd里python查看)

  3. 一定要一一对应。否则会报ERROR: TA_Lib-0.4.24-cp38-cp38-win32.whl is not a supported wheel on this platform.平台不符合的错误。

  4. 下载出来的文件不能改名。否则会报ERROR: TA_Lib64.whl(你更改后的文件名) is not a valid wheel filename.文件名无效错误。

另外,若想将TA-Lib包安装在python全局系统环境,则还要确保以下两项:

  1. 确保pip添加到windows环境变量。在哪都能使pip。
  2. 确保以上都满足cmd进入下载文件的位置。

TA_Lib-0.4.24-cp38-cp38-win_amd64.whl下载页面

安装过程日志如下:(此处我直接将TA_Lib-0.4.24-cp38-cp38-win_amd64.whl 文件下载至 F:CodeProj目录)

(venv) F:CodeProj>pip install TA_Lib-0.4.24-cp38-cp38-win_amd64.whl
Processing f:codeprojta_lib-0.4.24-cp38-cp38-win_amd64.whl
Requirement already satisfied: numpy in f:codeprojvenvlibsite-packages (from TA-Lib==0.4.24) (1.21.5)
Installing collected packages: TA-Lib
Successfully installed TA-Lib-0.4.24

(venv) F:CodeProj>
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/870821.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号