- 问题环境
- 问题描述
- 问题原因 & 解决办法
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>
问题原因 & 解决办法
-
不能直接pip下载。下载的是tar.gz的文件。windows不能解压运行。看了下清华的地址列表。只有tar.gz的和一个压缩包。其他地址没看。
直接下载压缩包文件。在使用python setup.py install的时候会使用到c++。然后又是一堆缺少dll的麻烦。dll补全以后又不能调用。。。 -
在 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查看) -
一定要一一对应。否则会报ERROR: TA_Lib-0.4.24-cp38-cp38-win32.whl is not a supported wheel on this platform.平台不符合的错误。
-
下载出来的文件不能改名。否则会报ERROR: TA_Lib64.whl(你更改后的文件名) is not a valid wheel filename.文件名无效错误。
另外,若想将TA-Lib包安装在python全局系统环境,则还要确保以下两项:
- 确保pip添加到windows环境变量。在哪都能使pip。
- 确保以上都满足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>



