Пакет Ta-lib в Google App Engine Standard Python 3 с использованием файла requirements.txt

Каждый раз, когда я пытаюсь выполнить развертывание на движке приложения, я получаю сбой сборки для ta-lib. В трассировке журнала есть несколько строк, например:

ERROR: Command errored out with exit status 1
ModuleNotFoundError: No module named 'numpy'

Я развернул на движке приложений гибкий перед использованием докера и ta-lib wheel, но я не смог заставить колесо работать со стандартной средой, поэтому попробовал использовать ta-lib прямо в файле requirements.txt. Мой проект отлично работает локально. Я подумал, может быть, это потому, что файл requirements.txt сначала не устанавливает Numpy или что-то в этом роде. Мой app.yaml прост:

runtime: python37
entrypoint: gunicorn -b :$PORT main:app

Можно ли использовать ta-lib в стандартной среде движка приложений Python 3.7?

Любая помощь будет очень признательна.

ОБНОВЛЕНИЕ:

Вот мой файл requirements.txt:

numpy==1.18.1
pandas==1.0.1
Flask
marshmallow
pytz
requests
python-dateutil
flask-cors
python-dotenv
python-jose-cryptodome
six
cryptocompare
ta-lib==0.4.17

person Nicholas    schedule 28.02.2020    source источник
comment
Не могли бы вы прикрепить свой файл requirements.txt?   -  person Nibrass H    schedule 28.02.2020
comment
Спасибо за комментарий @NibrassH. Я добавил файл.   -  person Nicholas    schedule 29.02.2020


Ответы (1)


Вы должны учитывать, что зависимости для приложений Python от App Engine Standard объявлены в стандартном файле requirements.txt.

При развертывании в App Engine зависимости, указанные в файле requirements.txt, будут автоматически установлены вместе с развернутым приложением.

Также относительно requirements.txt

«Файлы требований» - это файлы, содержащие список элементов, которые должны быть установлены с помощью pip install, например:

pip install -r requirements.txt 

Подробная информация о формате файлов находится здесь: Формат файла требований.

Логически файл требований - это просто список аргументов установки pip, помещенных в файл. Обратите внимание, что вы не должны полагаться на элементы в файле, устанавливаемые pip в каком-либо определенном порядке.

Однако процесс установки ta-lib python module состоит из:

1. Установите базовую библиотеку TA-Lib C.

2. Установите зависимости Python (numpy или pandas и т. Д.)

3.Установите модуль python ta-lib

Поэтому я не думаю, что вы можете использовать этот модуль для App Engine Standard. Я думаю, вам стоит подумать об использовании App Engine Flexible или Cloud Run.

Это руководство о том, как установить ta-lib в python 3.7 с образцом Dockerfile

FROM python:3.7
WORKDIR /tmp
RUN pip install numpy
RUN pip install pandas
RUN pip install sqlalchemy
# TA-Lib
RUN wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz && \
 tar -xvzf ta-lib-0.4.0-src.tar.gz && \
 cd ta-lib/ && \
 ./configure — prefix=/usr && \
 make && \
 make install && \
 cd .. && \
 wget https://files.pythonhosted.org/packages/90/05/d4c6a778d7a7de0be366bc4a850b4ffaeac2abad927f95fa8ba6f355a082/TA-Lib-0.4.17.tar.gz && \
 tar xvf TA-Lib-0.4.17.tar.gz && \
 cd TA-Lib-0.4.17 && \
 python setup.py install && \
 cd ..
RUN rm -R ta-lib ta-lib-0.4.0-src.tar.gz TA-Lib-0.4.17 TA-Lib-0.4.17.tar.gz

person marian.vladoi    schedule 24.03.2020
comment
Спасибо за ответ @ marian.vladoi. Я думал, что это могло быть так. Я ранее успешно развертывал в гибкой среде. Я надеялся, что может быть способ сделать это в стандартной среде, поскольку они начали разрешать сторонние модули Python, написанные на C. Я подожду, пока завершится награда, и награжу вас баллами, если никто другой каким-то образом не найдет способ сделай это. - person Nicholas; 25.03.2020