Google App Engine Standard Python 3 上的 Ta-lib 包使用 requirements.txt
Ta-lib package on Google App Engine Standard Python 3 using requirements.txt
每次我尝试部署到 App Engine 时,我都会遇到 ta-lib 的构建失败。日志记录跟踪有几行,如:
ERROR: Command errored out with exit status 1
ModuleNotFoundError: No module named 'numpy'
在使用 docker 和 ta-lib wheel 之前,我已经在 app engine flexible 上进行了部署,但是我无法在标准环境中使用 wheel,所以直接在 [= 中尝试 ta-lib 32=]。我的项目在本地运行良好。
我想可能是因为 requirements.txt 没有先安装 Numpy 之类的。我的app.yaml很简单:
runtime: python37
entrypoint: gunicorn -b :$PORT main:app
是否可以在 App Engine 标准环境 Python 3.7 上使用 ta-lib?
如有任何帮助,我们将不胜感激。
更新:
这是我的 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
您必须考虑 Python applications on App Engine Standard 的依赖项是在标准 requirements.txt 文件中声明的。
When you deploy to App Engine, the dependencies specified in the
requirements.txt file will be installed automatically with your
deployed app
Also regarding requirements.txt
“Requirements files” are files containing a list of items to be
installed using pip install like so:
pip install -r requirements.txt
Details on the format of the files are
here: Requirements File Format.
Logically, a Requirements file is just a list of pip install arguments
placed in a file. Note that you should not rely on the items in the
file being installed by pip in any particular order.
但是,安装 ta-lib python module
的过程包括:
1.Install 底层 TA-Lib C 库。
2.Install python 依赖项(numpy 或 pandas 等)
3.Install ta-lib python 模块
因此我认为您不能将此模块用于 App Engine Standard。我认为您应该考虑使用 App Engine Flexible 或 Cloud 运行.
这是一个关于如何 Install ta-lib in 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
每次我尝试部署到 App Engine 时,我都会遇到 ta-lib 的构建失败。日志记录跟踪有几行,如:
ERROR: Command errored out with exit status 1
ModuleNotFoundError: No module named 'numpy'
在使用 docker 和 ta-lib wheel 之前,我已经在 app engine flexible 上进行了部署,但是我无法在标准环境中使用 wheel,所以直接在 [= 中尝试 ta-lib 32=]。我的项目在本地运行良好。 我想可能是因为 requirements.txt 没有先安装 Numpy 之类的。我的app.yaml很简单:
runtime: python37
entrypoint: gunicorn -b :$PORT main:app
是否可以在 App Engine 标准环境 Python 3.7 上使用 ta-lib?
如有任何帮助,我们将不胜感激。
更新:
这是我的 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
您必须考虑 Python applications on App Engine Standard 的依赖项是在标准 requirements.txt 文件中声明的。
When you deploy to App Engine, the dependencies specified in the requirements.txt file will be installed automatically with your deployed app
Also regarding requirements.txt
“Requirements files” are files containing a list of items to be installed using pip install like so:
pip install -r requirements.txt
Details on the format of the files are here: Requirements File Format.
Logically, a Requirements file is just a list of pip install arguments placed in a file. Note that you should not rely on the items in the file being installed by pip in any particular order.
但是,安装 ta-lib python module
的过程包括:
1.Install 底层 TA-Lib C 库。
2.Install python 依赖项(numpy 或 pandas 等)
3.Install ta-lib python 模块
因此我认为您不能将此模块用于 App Engine Standard。我认为您应该考虑使用 App Engine Flexible 或 Cloud 运行.
这是一个关于如何 Install ta-lib in 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