Не могу установить библиотеку TA Lib

Пытаюсь установить библиотеку пайтон ta lib,но выдаёт ошибку : введите сюда описание изображения


Ответы (2 шт):

Автор решения: Ofdm

Мне помогла настройка среды выполнения. Вот часть инструкции с https://xn-----6kcjd7aa0cfnmaec4e.xn--p1ai/%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%BE-%D0%BA%D0%B0%D0%BA-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C-talib-%D0%B2-%D0%B2%D0%B8%D0%BD%D0%B4%D0%BE%D0%B2%D1%81-10/

  1. Откройте Панель управления и найдите раздел Система и безопасность. Найдите раздел Система. Нажмите Дополнительные параметры и перейдите во вкладку Дополнительно.
  2. Нажмите Переменные среды. В разделе Переменные среды пользователя нажмите Создать. В поле Имя переменной введите "TA-LIB", а в поле Значение переменной вставьте путь к папке TA-LIB (туда, где вы распаковали архив со скачанной библиотекой), например "С:ta-lib"/ 3.Нажмите ОК во всех открытых окнах.
→ Ссылка
Автор решения: Luis Loren

Так объяснять очень сложно по командной строке видно ( вы очень далеко в начале пути )- он по инструкции сразу ни у кого не ставиться и смотря для чего у них есть сборки для винды - они просто накатываются - а python это обертка ставил из под linux там компилировать нужно сначала библиотеку так как она в c++ ta-lib-0.4.0-src.tar.gz с этого файла - брать на гид или оф сайте - потом только обертка накатывается - я ставил 0.6.1 последняя стабильная - перед оберткой - терялись библиотеки т. е пути - их жестко надо в командах прописывать ну и зависимости - ссылка выше numpy и тд - это уже в инструкции . добавляю инструкцию которую составлял она на компиляцию библиотеки и рабочая с возможными проблемами и их решениями что бы было понятно - это основа после этого библиотеки можно использовать при обертке питона # Инструкция по сборке TA-Lib и устранению ошибок

Описание

Данное руководство поможет собрать библиотеку TA-Lib из исходного кода на Linux через WSL (Windows Subsystem for Linux) с использованием CMake и устранить возможные ошибки, которые могут возникнуть в процессе.


Предварительные шаги

Установите необходимые зависимости

Перед началом убедитесь, что все инструменты для сборки установлены:

sudo apt-get update
sudo apt-get install -y build-essential cmake make gcc g++

Если вы планируете использовать генератор Ninja, установите его:

sudo apt-get install -y ninja-build

Скачайте исходный код TA-Lib

Загрузите исходный код TA-Lib с официального сайта: Ссылка для скачивания

Распакуйте архив:

tar -xvzf ta-lib-0.4.0-src.tar.gz -C /path/to/your/directory

Перейдите в папку с проектом

cd /path/to/your/directory/ta-lib

Процесс сборки

1. Создайте папку для сборки

Создайте отдельную папку build для файлов сборки:

mkdir build
cd build

2. Настройте проект с помощью CMake

Используйте CMake для генерации файлов сборки. Если используете стандартные Makefiles:

cmake .. -G "Unix Makefiles"

Если вы хотите использовать Ninja:

cmake .. -G "Ninja"

3. Запустите сборку

После успешной настройки выполните команду:

make

или, если вы выбрали Ninja:

ninja

После завершения сборки в папке build/lib появится файл libta_lib.a.


Решение возможных ошибок

1. Ошибка: Не найден файл ta_frame.h

Описание: Компилятор сообщает, что файл ta_frame.h отсутствует.

Решение: Добавьте путь к папке, где находится этот файл, в CMakeLists.txt:

include_directories(
    c/include
    c/src/ta_abstract/frames
)

2. Ошибка: Не найден файл ta_test_priv.h

Описание: Компилятор не может найти файл ta_test_priv.h, который используется для тестирования.

Решение: Добавьте путь к директории c/src/tools/ta_regtest в CMakeLists.txt:

include_directories(
    c/src/tools/ta_regtest
)

Если тесты не нужны, вы можете исключить их из сборки:

list(FILTER TA_SRC EXCLUDE REGEX "c/src/tools/ta_regtest/.*")

3. Ошибка: excel_glue.c вызывает проблемы

Описание: Файл excel_glue.c содержит макросы, которые не определены.

Решение: Исключите этот файл из сборки, добавив в CMakeLists.txt:

list(FILTER TA_SRC EXCLUDE REGEX "c/src/ta_abstract/excel_glue.c")

4. Предупреждение: -Wformat-security

Описание: Компилятор предупреждает о возможной небезопасной операции с форматом.

Решение: В файле gen_code.c замените строку:

fprintf(out, prefix);

на:

fprintf(out, "%s", prefix);

Полный пример CMakeLists.txt

Вот рабочий пример CMakeLists.txt с учётом всех упомянутых изменений:

cmake_minimum_required(VERSION 3.10)

# Укажите название проекта
project(TA-Lib C)

# Укажите папки с заголовочными файлами
include_directories(
    c/include
    c/src/ta_abstract
    c/src/ta_abstract/frames
    c/src/ta_common
    c/src/ta_func
    c/src/tools/ta_regtest
)

# Найдите все исходные файлы
file(GLOB_RECURSE TA_SRC c/src/**/*.c)

# Исключите excel_glue.c
list(FILTER TA_SRC EXCLUDE REGEX "c/src/ta_abstract/excel_glue.c")

# Исключите тесты (если не нужны)
list(FILTER TA_SRC EXCLUDE REGEX "c/src/tools/ta_regtest/ta_test_func/.*")

# Создайте статическую библиотеку
add_library(ta_lib STATIC ${TA_SRC})

# Укажите путь для вывода библиотек
set_target_properties(ta_lib PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)

Итог

После выполнения всех шагов в папке build/lib должен появиться файл libta_lib.a. Вы можете использовать его в своих проектах, указав путь к библиотеке и заголовочным файлам.

Пример использования:

gcc -o your_program your_program.c -I /path/to/ta-lib/c/include \
    -L /path/to/ta-lib/build/lib -lta_lib
→ Ссылка