Пакет Ta-lib в Google App Engine Standard Python 3 с использованием require.txt - PullRequest
1 голос
/ 28 февраля 2020

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

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

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

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

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

Любая помощь будет наиболее ценной.

ОБНОВЛЕНИЕ:

Вот мои требования.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

1 Ответ

1 голос
/ 24 марта 2020

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

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

Также касается needs.txt

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

pip install -r requirements.txt 

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

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

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

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

2.Установите зависимости python (numpy или pandas, et c.)

3. Установите ta-lib python module

Поэтому я не думаю, что вы можете использовать этот модуль для 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

...