在 Python 3.7 中安装 TA-Lib 时遇到问题
Trouble Installing TA-Lib in Python 3.7
我正在尝试为 Python 3.7 安装 TA-Lib。我已经阅读了许多解决方案,但已经到了我无法弄清楚的地步。这是我从 pip 收到的消息:
Collecting ta-lib
Using cached https://files.pythonhosted.org/packages/90/05/d4c6a778d7a7de0be366bc4a850b4ffaeac2abad927f95fa8ba6f355a082/TA-Lib-0.4.17.tar.gz
Requirement already satisfied: numpy in c:\python37_64\lib\site-packages (from ta-lib) (1.15.4)
Installing collected packages: ta-lib
Running setup.py install for ta-lib: started
Command "c:\python37_64\python.exe -u -c "import setuptools, tokenize;__file__='C:\Users\Todd\AppData\Local\Temp\pip-install-0c2__0gf\ta-lib\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\Todd\AppData\Local\Temp\pip-record-3dpfanca\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\Todd\AppData\Local\Temp\pip-install-0c2__0gf\ta-lib\
Running setup.py install for ta-lib: finished with status 'error'
Complete output from command c:\python37_64\python.exe -u -c "import setuptools, tokenize;__file__='C:\Users\Todd\AppData\Local\Temp\pip-install-0c2__0gf\ta-lib\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\Todd\AppData\Local\Temp\pip-record-3dpfanca\install-record.txt --single-version-externally-managed --compile:
C:\Users\Todd\AppData\Local\Temp\pip-install-0c2__0gf\ta-lib\setup.py:79: UserWarning: Cannot find ta-lib library, installation may fail.
warnings.warn('Cannot find ta-lib library, installation may fail.')
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.7
creating build\lib.win-amd64-3.7\talib
copying talib\abstract.py -> build\lib.win-amd64-3.7\talib
copying talib\deprecated.py -> build\lib.win-amd64-3.7\talib
copying talib\stream.py -> build\lib.win-amd64-3.7\talib
copying talib\test_abstract.py -> build\lib.win-amd64-3.7\talib
copying talib\test_data.py -> build\lib.win-amd64-3.7\talib
copying talib\test_func.py -> build\lib.win-amd64-3.7\talib
copying talib\test_pandas.py -> build\lib.win-amd64-3.7\talib
copying talib\test_stream.py -> build\lib.win-amd64-3.7\talib
copying talib\__init__.py -> build\lib.win-amd64-3.7\talib
running build_ext
building 'talib._ta_lib' extension
creating build\temp.win-amd64-3.7
creating build\temp.win-amd64-3.7\Release
creating build\temp.win-amd64-3.7\Release\talib
C:\Program Files (x86)\Microsoft Visual Studio17\BuildTools\VC\Tools\MSVC.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Ic:\python37_64\lib\site-packages\numpy\core\include -Ic:\ta-lib\c\include -Ic:\python37_64\include -Ic:\python37_64\include "-IC:\Program Files (x86)\Microsoft Visual Studio17\BuildTools\VC\Tools\MSVC.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\include.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\include.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\include.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\include.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\include.0.17763.0\cppwinrt" /Tctalib/_ta_lib.c /Fobuild\temp.win-amd64-3.7\Release\talib/_ta_lib.obj
_ta_lib.c
talib/_ta_lib.c(524): fatal error C1083: Cannot open include file: 'ta_libc.h': No such file or directory
error: command 'C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe' failed with exit status 2
----------------------------------------
FINISHED
谢谢。
我建议使用 here 中的滚轮进行安装。最近我 运行 在尝试 升级 库时遇到了同样的问题,这又是另一件你不想做的事情。
希望这可以帮助。祝你好运。
这是对我有用的...
从 here 下载 TA_Lib-0.4.10-cp27-cp27m-win_amd64.whl
并使用命令 pip install TA_Lib-0.4.10-cp27-cp27m-win_amd64.whl
我使用的是 python 3.6 64 位版本的 Conda4。
另一种方法你也可以试试
要使用 Python 3.6+、Windows 64 位安装 Ta-Lib,请使用此 pip install -i https://pypi.anaconda.org/masdeseiscaracteres/simple ta-lib
错误的根本原因可能是因为您没有安装用 C 编写的实际 TA-Lib 库。请注意,python 库只是实际库之上的包装器。因此,为了成功安装 python 包装器,您需要安装其先决条件(实际的 TA-Lib)。
有关详细信息,请参阅 https://github.com/mrjbq7/ta-lib#dependencies。
来自以上参考资料(为了便于访问):
正在安装实际的 TA-Lib(python 包装器的先决条件):
Windows
下载ta-lib-0.4.0-msvc.zip并解压到C:\ta-lib
将解压后的文件夹ta-lib移动到C:\
下载并安装 Visual Studio Community 2015(如果尚未安装(请记住 Select [Visual C++] 功能)
打开 x64 本机工具命令提示符
导航至C:\ta-lib\c\make\cdr\win32\msvc
键入nmake
(此命令构建库)
Linux
$ tar -xzf ta-lib-0.4.0-src.tar.gz
$ cd ta-lib/
$ ./configure --prefix=/usr
$ make
$ sudo make install
Mac OS X
$ brew install ta-lib
If you are using a M1 laptop and Homebrew, then you can set these before installing:
export TA_INCLUDE_PATH="$(brew --prefix ta-lib)/include"
export TA_LIBRARY_PATH="$(brew --prefix ta-lib)/lib"
提示: 看来,默认情况下,setup.py 从 C:\ta-lib
(在 Windows 中)和 /usr
(在 Linux 中)。因此,如果您将下载的 zip 文件移动到另一个位置并在那里解压缩(对于 Windows)或将 ./configure --prefix
设置为 /usr
以外的任何位置(对于 Linux),则您必须将 TA_LIBRARY_PATH
和 TA_INCLUDE_PATH
环境变量设置到您想要的位置。
If you installed the underlying TA-Lib library with a custom prefix (e.g., with ./configure --prefix=$PREFIX), then when you go to install this python wrapper you can specify additional search paths to find the library and include files for the underlying TA-Lib library using the TA_LIBRARY_PATH and TA_INCLUDE_PATH environment variables:
$ export TA_LIBRARY_PATH=$PREFIX/lib
$ export TA_INCLUDE_PATH=$PREFIX/include
$ python setup.py install # or pip install ta-lib
这里Ta-lib包的文档很清楚:
https://github.com/mrjbq7/ta-lib
https://mrjbq7.github.io/ta-lib/
正如明确提到的那样!这个 python ta-lib 图书馆!是位于 https://ta-lib.org/
的 TaLib 库的包装器
This is a Python wrapper for TA-LIB based on Cython instead of SWIG
要知道ta-lib.org库是用c lang创建的库!您可以查看 here
并且为不同的语言制作了多种绑定和接口!正如官网所说!
python 库是使用 cython 的 python 的绑定!这使它比 SWIG 更高效!
知道我会坚持用pip的!(很好用,也很方便)
为了安装顺利!你需要分两步走!您需要先安装 TaLib 本机库二进制文件!然后安装 python lib with pip(再次使用 pip)!而这个命令是必须的!在第一次安装完成之前,您不能安装 python 绑定!
说了这么多!
安装
第 1 步:安装 Talib 本机二进制文件
正在安装 Ta-lib 软件(或本机二进制库)! 必须!并且需要先完成!
按照此处的说明进行操作:
https://github.com/mrjbq7/ta-lib#dependencies
说明太清楚太详细了!
(Linux 用户您需要以正确的权限执行命令(因为使用 sudo))
最后一件事!您可以查看此线程中的@Code_Worm 答案here 他对上面的说明解释了很多要点!
我也会指出他的提示:
Hint : It seems, by default, the setup.py reads actual library files from C:\ta-lib (in Windows) and /usr (in Linux). so if you move the downloaded zip file to another location and extract it there (for Windows) or set ./configure --prefix to any location other than /usr (for Linux), then you would have to set TA_LIBRARY_PATH and TA_INCLUDE_PATH environment variables to your desired locations.
检查此提示下方的部分!
您可以查看故障排除部分here
第 2 步:使用 pip
安装 python 库
在第一步成功完成并完成之前不要继续此步骤!
pip 包和 pip 再次运行良好!因此 无需使用任何其他网站的 whl 文件 和 src!我来告诉你怎么做!
pip install TA-Lib
不过这里有很多话要说!
首先你需要使用python 3
因此您可以使用 pip3 而不是 pip!如果 pip 解析为 python2 版本(在 linux 安装中很常见)!
pip3 install TA-Lib
现在你可能会陷入这个问题和错误!
unescape = getattr(html, 'unescape', html_parser.HTMLParser().unescape)
AttributeError: 'HTMLParser' object has no attribute 'unescape'
如果是这样!这是 python 3.9 可能会出现的问题! (如果您使用的是 3.8,您可能根本不会遇到这种情况)!
解决方法很简单!我们只需要升级一些包!您可以按照此处答案中的说明进行操作:
https://whosebug.com/a/65640477/7668448
After some trial and error I upgraded, pip, distlib and setuptools and it solved it. Not sure which of those is causing it. (On the last two I found issues 1 2 of other sites)
It is caused by removing unescape from HTMLParser in python3.9, which seems to break setuptools.
pip3 install --upgrade setuptools
如果不行,也试试:
pip3 install --upgrade pip
pip3 install --upgrade distlib
就是这样!如果第一步(第 1 步:安装 TaLib 本机二进制文件)完成并完成!那么运行宁pip3 install TA-Lib
这次就可以了!
对于 Linux 用户!如果你运行就用sudo
吧!它失败了!不要使用 sudo
!你不应该!
对于 linux 用户,您可能需要安装 python headers
sudo apt-get install python3-dev
不行就试试吧!在大多数 linux 发行版中!默认情况下你会没事的!
最后(故障排除文档部分)
如果需要请检查故障排除部分here
我正在尝试为 Python 3.7 安装 TA-Lib。我已经阅读了许多解决方案,但已经到了我无法弄清楚的地步。这是我从 pip 收到的消息:
Collecting ta-lib
Using cached https://files.pythonhosted.org/packages/90/05/d4c6a778d7a7de0be366bc4a850b4ffaeac2abad927f95fa8ba6f355a082/TA-Lib-0.4.17.tar.gz
Requirement already satisfied: numpy in c:\python37_64\lib\site-packages (from ta-lib) (1.15.4)
Installing collected packages: ta-lib
Running setup.py install for ta-lib: started
Command "c:\python37_64\python.exe -u -c "import setuptools, tokenize;__file__='C:\Users\Todd\AppData\Local\Temp\pip-install-0c2__0gf\ta-lib\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\Todd\AppData\Local\Temp\pip-record-3dpfanca\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\Todd\AppData\Local\Temp\pip-install-0c2__0gf\ta-lib\
Running setup.py install for ta-lib: finished with status 'error'
Complete output from command c:\python37_64\python.exe -u -c "import setuptools, tokenize;__file__='C:\Users\Todd\AppData\Local\Temp\pip-install-0c2__0gf\ta-lib\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\Todd\AppData\Local\Temp\pip-record-3dpfanca\install-record.txt --single-version-externally-managed --compile:
C:\Users\Todd\AppData\Local\Temp\pip-install-0c2__0gf\ta-lib\setup.py:79: UserWarning: Cannot find ta-lib library, installation may fail.
warnings.warn('Cannot find ta-lib library, installation may fail.')
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.7
creating build\lib.win-amd64-3.7\talib
copying talib\abstract.py -> build\lib.win-amd64-3.7\talib
copying talib\deprecated.py -> build\lib.win-amd64-3.7\talib
copying talib\stream.py -> build\lib.win-amd64-3.7\talib
copying talib\test_abstract.py -> build\lib.win-amd64-3.7\talib
copying talib\test_data.py -> build\lib.win-amd64-3.7\talib
copying talib\test_func.py -> build\lib.win-amd64-3.7\talib
copying talib\test_pandas.py -> build\lib.win-amd64-3.7\talib
copying talib\test_stream.py -> build\lib.win-amd64-3.7\talib
copying talib\__init__.py -> build\lib.win-amd64-3.7\talib
running build_ext
building 'talib._ta_lib' extension
creating build\temp.win-amd64-3.7
creating build\temp.win-amd64-3.7\Release
creating build\temp.win-amd64-3.7\Release\talib
C:\Program Files (x86)\Microsoft Visual Studio17\BuildTools\VC\Tools\MSVC.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Ic:\python37_64\lib\site-packages\numpy\core\include -Ic:\ta-lib\c\include -Ic:\python37_64\include -Ic:\python37_64\include "-IC:\Program Files (x86)\Microsoft Visual Studio17\BuildTools\VC\Tools\MSVC.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\include.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\include.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\include.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\include.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\include.0.17763.0\cppwinrt" /Tctalib/_ta_lib.c /Fobuild\temp.win-amd64-3.7\Release\talib/_ta_lib.obj
_ta_lib.c
talib/_ta_lib.c(524): fatal error C1083: Cannot open include file: 'ta_libc.h': No such file or directory
error: command 'C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe' failed with exit status 2
----------------------------------------
FINISHED
谢谢。
我建议使用 here 中的滚轮进行安装。最近我 运行 在尝试 升级 库时遇到了同样的问题,这又是另一件你不想做的事情。 希望这可以帮助。祝你好运。
这是对我有用的...
从 here 下载 TA_Lib-0.4.10-cp27-cp27m-win_amd64.whl
并使用命令 pip install TA_Lib-0.4.10-cp27-cp27m-win_amd64.whl
我使用的是 python 3.6 64 位版本的 Conda4。
另一种方法你也可以试试
要使用 Python 3.6+、Windows 64 位安装 Ta-Lib,请使用此 pip install -i https://pypi.anaconda.org/masdeseiscaracteres/simple ta-lib
错误的根本原因可能是因为您没有安装用 C 编写的实际 TA-Lib 库。请注意,python 库只是实际库之上的包装器。因此,为了成功安装 python 包装器,您需要安装其先决条件(实际的 TA-Lib)。
有关详细信息,请参阅 https://github.com/mrjbq7/ta-lib#dependencies。
来自以上参考资料(为了便于访问):
正在安装实际的 TA-Lib(python 包装器的先决条件):
Windows
下载ta-lib-0.4.0-msvc.zip并解压到C:\ta-lib
将解压后的文件夹ta-lib移动到C:\
下载并安装 Visual Studio Community 2015(如果尚未安装(请记住 Select [Visual C++] 功能)
打开 x64 本机工具命令提示符
导航至
C:\ta-lib\c\make\cdr\win32\msvc
键入
nmake
(此命令构建库)
Linux
$ tar -xzf ta-lib-0.4.0-src.tar.gz
$ cd ta-lib/
$ ./configure --prefix=/usr
$ make
$ sudo make install
Mac OS X
$ brew install ta-lib
If you are using a M1 laptop and Homebrew, then you can set these before installing:
export TA_INCLUDE_PATH="$(brew --prefix ta-lib)/include"
export TA_LIBRARY_PATH="$(brew --prefix ta-lib)/lib"
提示: 看来,默认情况下,setup.py 从 C:\ta-lib
(在 Windows 中)和 /usr
(在 Linux 中)。因此,如果您将下载的 zip 文件移动到另一个位置并在那里解压缩(对于 Windows)或将 ./configure --prefix
设置为 /usr
以外的任何位置(对于 Linux),则您必须将 TA_LIBRARY_PATH
和 TA_INCLUDE_PATH
环境变量设置到您想要的位置。
If you installed the underlying TA-Lib library with a custom prefix (e.g., with ./configure --prefix=$PREFIX), then when you go to install this python wrapper you can specify additional search paths to find the library and include files for the underlying TA-Lib library using the TA_LIBRARY_PATH and TA_INCLUDE_PATH environment variables:
$ export TA_LIBRARY_PATH=$PREFIX/lib
$ export TA_INCLUDE_PATH=$PREFIX/include
$ python setup.py install # or pip install ta-lib
这里Ta-lib包的文档很清楚:
https://github.com/mrjbq7/ta-lib
https://mrjbq7.github.io/ta-lib/
正如明确提到的那样!这个 python ta-lib 图书馆!是位于 https://ta-lib.org/
的 TaLib 库的包装器This is a Python wrapper for TA-LIB based on Cython instead of SWIG
要知道ta-lib.org库是用c lang创建的库!您可以查看 here
并且为不同的语言制作了多种绑定和接口!正如官网所说!
python 库是使用 cython 的 python 的绑定!这使它比 SWIG 更高效!
知道我会坚持用pip的!(很好用,也很方便)
为了安装顺利!你需要分两步走!您需要先安装 TaLib 本机库二进制文件!然后安装 python lib with pip(再次使用 pip)!而这个命令是必须的!在第一次安装完成之前,您不能安装 python 绑定!
说了这么多!
安装
第 1 步:安装 Talib 本机二进制文件
正在安装 Ta-lib 软件(或本机二进制库)! 必须!并且需要先完成!
按照此处的说明进行操作:
https://github.com/mrjbq7/ta-lib#dependencies
说明太清楚太详细了!
(Linux 用户您需要以正确的权限执行命令(因为使用 sudo))
最后一件事!您可以查看此线程中的@Code_Worm 答案here 他对上面的说明解释了很多要点!
我也会指出他的提示:
Hint : It seems, by default, the setup.py reads actual library files from C:\ta-lib (in Windows) and /usr (in Linux). so if you move the downloaded zip file to another location and extract it there (for Windows) or set ./configure --prefix to any location other than /usr (for Linux), then you would have to set TA_LIBRARY_PATH and TA_INCLUDE_PATH environment variables to your desired locations.
检查此提示下方的部分!
您可以查看故障排除部分here
第 2 步:使用 pip
安装 python 库在第一步成功完成并完成之前不要继续此步骤!
pip 包和 pip 再次运行良好!因此 无需使用任何其他网站的 whl 文件 和 src!我来告诉你怎么做!
pip install TA-Lib
不过这里有很多话要说!
首先你需要使用python 3
因此您可以使用 pip3 而不是 pip!如果 pip 解析为 python2 版本(在 linux 安装中很常见)!
pip3 install TA-Lib
现在你可能会陷入这个问题和错误!
unescape = getattr(html, 'unescape', html_parser.HTMLParser().unescape)
AttributeError: 'HTMLParser' object has no attribute 'unescape'
如果是这样!这是 python 3.9 可能会出现的问题! (如果您使用的是 3.8,您可能根本不会遇到这种情况)!
解决方法很简单!我们只需要升级一些包!您可以按照此处答案中的说明进行操作:
https://whosebug.com/a/65640477/7668448
After some trial and error I upgraded, pip, distlib and setuptools and it solved it. Not sure which of those is causing it. (On the last two I found issues 1 2 of other sites) It is caused by removing unescape from HTMLParser in python3.9, which seems to break setuptools.
pip3 install --upgrade setuptools
如果不行,也试试:
pip3 install --upgrade pip
pip3 install --upgrade distlib
就是这样!如果第一步(第 1 步:安装 TaLib 本机二进制文件)完成并完成!那么运行宁pip3 install TA-Lib
这次就可以了!
对于 Linux 用户!如果你运行就用sudo
吧!它失败了!不要使用 sudo
!你不应该!
对于 linux 用户,您可能需要安装 python headers
sudo apt-get install python3-dev
不行就试试吧!在大多数 linux 发行版中!默认情况下你会没事的!
最后(故障排除文档部分)
如果需要请检查故障排除部分here