在 Python 3.7 中安装 TA-Lib 时遇到问题

新手上路,请多包涵

我正在尝试为 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 Studio\2017\BuildTools\VC\Tools\MSVC\14.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 Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.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

谢谢。

原文由 Todd Burus 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

这是对我有用的…

这里 下载 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+ 安装 Ta-Lib,Windows 64 位使用这个 pip install -i https://pypi.anaconda.org/masdeseiscaracteres/simple ta-lib

原文由 mlbishnoi 发布,翻译遵循 CC BY-SA 4.0 许可协议

错误的根本原因可能是因为您没有安装用 C 编写的实际 TA-Lib 库。请注意,python 库只是实际库之上的包装器。因此,为了成功安装 python 包装器,您需要安装其先决条件(实际的 TA-Lib)。

有关详细信息,请参阅 https://github.com/mrjbq7/ta-lib#dependencies

从上面的参考资料(为了便于访问):

安装实际的 TA-Lib(python 包装器的先决条件):

视窗

  1. 下载ta-lib-0.4.0-msvc.zip并解压到C:\ta-lib

  2. 将解压后的文件夹 ta-lib 移动到 C:

  3. 如果尚未安装,请下载并安装 Visual Studio Community 2015(记得选择 [Visual C++] 功能)

  4. 打开 x64 本机工具命令提示符

  5. 导航至 C:\ta-lib\c\make\cdr\win32\msvc

  6. 输入 nmake (此命令构建库)

Linux

 $ tar -xzf ta-lib-0.4.0-src.tar.gz
$ cd ta-lib/
$ ./configure --prefix=/usr
$ make
$ sudo make install

苹果操作系统

$ brew install ta-lib

如果您使用的是 M1 笔记本电脑和 Homebrew,那么您可以在安装之前设置这些:

 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_PATHTA_INCLUDE_PATH 环境变量设置到你想要的位置。

如果您安装了带有自定义前缀的底层 TA-Lib 库(例如,使用 ./configure –prefix=$PREFIX),那么当您安装此 python 包装器时,您可以指定其他搜索路径来查找该库和包含文件对于使用 TA_LIBRARY_PATH 和 TA_INCLUDE_PATH 环境变量的底层 TA-Lib 库:

 $ export TA_LIBRARY_PATH=$PREFIX/lib
$ export TA_INCLUDE_PATH=$PREFIX/include
$ python setup.py install # or pip install ta-lib

原文由 Code_Worm 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题