由於需要和朋友比對一個結果,需要在Windows 10中安裝TA-Lib庫,寫點簡單的python代碼。
本來以為就簡單的執行下pip install TA-Lib就OK了。
然后,安裝失敗:
fatal error: ta-lib/ta_libc.h: No such file or directory compilation terminated.
網上搜索,提示:This typically means that it can't find the underlyingTA-Lib
library, a dependency which needs to be installed.
但是沒有進一步說怎么安裝TA-Lib庫。於是翻看setup.py代碼,發現如果是win32系統,會到C盤去找TA-Lib庫
於是直接把ta-lib-0.4.0-msvc.zip里的 ta-lib/c 目錄里的所有內容拷貝到c:\ta-lib\c 下。
執行pip install TA-Lib。
然后,安裝還是失敗:
common.obj : warning LNK4197: export 'PyInit_common' specified multiple times; using first specification Creating library build\temp.win-amd64-3.5\Release\talib\common.cp35-win_amd64.lib and object build\temp.win-amd64-3.5\Release\talib\common.cp35-win_amd64.exp common.obj : error LNK2001: unresolved external symbol TA_SetUnstablePeriod common.obj : error LNK2001: unresolved external symbol TA_Shutdown common.obj : error LNK2001: unresolved external symbol TA_Initialize common.obj : error LNK2001: unresolved external symbol TA_GetUnstablePeriod common.obj : error LNK2001: unresolved external symbol TA_GetVersionString build\lib.win-amd64-3.5\talib\common.cp35-win_amd64.pyd : fatal error LNK1120: 5 unresolved externals error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\amd64\\link.exe' failed with exit status 1120
鏈接錯誤。。。。。。翻看了一些ta-lib在github上的issue,里面提到ta-lib的C庫是32位的。
但是pip安裝的時候需要編譯common.c,然后再和ta-lib的C庫中的lib鏈接起來,問題就在這里了。github上有人建議重新在64位下編譯ta-lib庫來解決這個問題。
經過幾番掙扎,最后的解決方法是:
開始 -> 所有程序 -> Mircosoft Visual Studio 2010 -> visual studio tools -> Visual Studio x64 win64 command prompt (2010)
在VS x64 win64命令行下,cd C:\ta-lib\c\make\cdr\win32\msvc 目錄下,執行nmake
等執行完畢后,再運行pip install ta-lib, 這次終於成功了