Проблемы с установкой TA-Lib в Python 3.7

Я пытаюсь установить TA-Lib для Python 3.7. Я уже прочитал несколько решений, но дошел до того, что не могу понять. Вот сообщение, которое я получаю от 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

Благодарю.

6 ответов

Вот что у меня работает...

Загрузите TA_Lib-0.4.10-cp27-cp27m-win_amd64.whl отсюда и используйте командуpip install TA_Lib-0.4.10-cp27-cp27m-win_amd64.whl

Я использовал Conda4 с 64-битной версией python 3.6.

Другой способ тоже можно попробовать

Чтобы установить Ta-Lib с Python 3.6+, в 64-разрядной версии Windows используйте это pip install -i https://pypi.anaconda.org/masdeseiscaracteres/simple ta-lib

Основная причина ошибки, вероятно, связана с тем, что вы не установили настоящую библиотеку TA-Lib, написанную на C. Обратите внимание, что python lib - это просто оболочка поверх реальной библиотеки. Итак, чтобы успешно установить оболочку 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

Mac OS X

      $ 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) и (в Linux). поэтому, если вы переместите загруженный zip-файл в другое место и распакуйте его там (для Windows) или установите ./configure --prefix в любое место кроме /usr (для Linux), тогда вам нужно будет установить TA_LIBRARY_PATH а также TA_INCLUDE_PATH переменные среды в желаемое место.

Если вы установили базовую библиотеку TA-Lib с настраиваемым префиксом (например, с ./configure --prefix = $ PREFIX), то при установке этой оболочки Python вы можете указать дополнительные пути поиска, чтобы найти библиотеку и включить файлы. для базовой библиотеки TA-Lib с использованием переменных среды TA_LIBRARY_PATH и TA_INCLUDE_PATH:

      $ 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! Обертка для библиотеки TaLib на

Это оболочка Python для https://ta-lib.org/TA-LIB, основанная на Cython вместо SWIG.

Чтобы знать, что библиотека ta-lib.org - это библиотека, созданная на языке c! Вы можете проверить здесь

И несколько привязок и интерфейсов сделаны для разных языков! Так же, как указано на официальном сайте!

Библиотека python - это привязка для python, использующего cython! Что делает его более эффективным, чем SWIG!

Знайте, что я буду настаивать на использовании pip! (работает все хорошо и удобно)

Чтобы установка прошла хорошо! Вам нужно будет сделать два шага! Сначала вам нужно установить двоичные файлы собственной библиотеки TaLib! Затем установите python lib с помощью pip (снова с помощью pip)! И этот заказ необходим! Вы не можете установить привязку python до завершения первой установки!

Все это сказано!

Монтаж

Шаг 1. Установка собственного бинарного файла Talib

Установка программного обеспечения Ta-lib (или двоичного кода собственной библиотеки) ! Является обязательным ! И это нужно сделать в первую очередь !

Следуйте инструкциям здесь:

https://github.com/mrjbq7/ta-lib#dependencies

Инструкции слишком четкие и подробные!

(Пользователям Linux необходимо выполнить команду с правильным приоритетом (например, с помощью sudo))

И последнее! Вы можете проверить ответ @Code_Worm в этой теме здесь. Он очень хорошо объяснил многие моменты в инструкции выше!

Я тоже укажу на его намек:

Подсказка: похоже, по умолчанию setup.py считывает фактические файлы библиотеки из C: \ ta-lib (в Windows) и / usr (в Linux). поэтому, если вы переместите загруженный zip-файл в другое место и извлечете его там (для Windows) или установите ./configure --prefix в любое место, кроме / usr (для Linux), вам придется установить переменные среды TA_LIBRARY_PATH и TA_INCLUDE_PATH в желаемые места.

Проверьте раздел под этим советом!

Вы можете проверить раздел по устранению неисправностей

Шаг 2. Установка библиотеки Python с помощью pip

Не выполняйте этот шаг до тех пор, пока первый шаг не будет успешно завершен!

Опять же, пакет 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://stackoverflow.com/a/65640477/7668448

После некоторых проб и ошибок я обновил, pip, distlib и setuptools, и он решил это. Не уверен, что из этого вызывает это. (На последних двух я обнаружил проблемы 1 2 других сайтов) Это вызвано удалением unescape из HTMLParser в python3.9, что, похоже, нарушает работу инструментов настройки.

      pip3 install --upgrade setuptools

Если не работает, попробуйте также:

      pip3 install --upgrade pip
pip3 install --upgrade distlib

Вот и все! Если первый шаг (шаг 1: Установка собственных двоичных файлов TaLib) хорошо выполнен! Затем бегом pip3 install TA-Lib на этот раз будет хорошо работать!

Для пользователей Linux! Если вы запустите его с помощью! И это не удалось! Не использовать sudo! Ты не должен!

Для пользователей Linux вам может потребоваться установить заголовки Python

      sudo apt-get install python3-dev

Вы можете попробовать, только если это не сработало! В большинстве дистрибутивов Linux! По умолчанию все будет в порядке!

Последний (раздел документации по устранению неполадок)

При необходимости проверьте раздел по устранению неисправностей здесьздесь

Если вы не установили первую собственную библиотеку TA-lib (как упоминалось здесь , и сначала установили ta-lib python, это поможет переустановить TA-lib, используя: pip install --upgrade --force-reinstall TA-lib

Я бы предложил установить с помощью колеса отсюда. Недавно я столкнулся с теми же проблемами, пытаясь обновить библиотеку, что опять же не стоит делать. Надеюсь это поможет. Удачи.

использовать это. pip установить talib-binary

Другие вопросы по тегам