Python GAE部署错误:没有名为';表格';
起初,我使用Python运行时创建了一个新项目,并使用Flask公开了一些API端点。其中一个方法使用Python库(tabla-py)和 我读过这篇文章,因为Table py需要Java8+, 我必须选择具有自定义运行时的灵活环境 于是,我做了一个Dockerfile(如下所示),但不幸的是,在将应用程序部署到gcloud时,我仍然会遇到这个错误。我不得不说,本地代码工作得很好,但当我使用“gcloud app deploy”时,我会遇到这个错误Python GAE部署错误:没有名为';表格';,python,dockerfile,app-engine-flexible,tabula-py,Python,Dockerfile,App Engine Flexible,Tabula Py,起初,我使用Python运行时创建了一个新项目,并使用Flask公开了一些API端点。其中一个方法使用Python库(tabla-py)和 我读过这篇文章,因为Table py需要Java8+, 我必须选择具有自定义运行时的灵活环境 于是,我做了一个Dockerfile(如下所示),但不幸的是,在将应用程序部署到gcloud时,我仍然会遇到这个错误。我不得不说,本地代码工作得很好,但当我使用“gcloud app deploy”时,我会遇到这个错误 Error: While importing
Error: While importing "main", an ImportError was raised:
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/flask/cli.py", line 240, in locate_app
__import__(module_name)
File "/main.py", line 4, in <module>
import tabula
ModuleNotFoundError: No module named 'tabula'
app.yaml
runtime: custom
env: flex
env_variables:
FLASK_APP : 'main.py'
Dockerfile
FROM python:3
RUN pip uninstall tabula && \
pip install --upgrade pip && \
pip install --no-cache-dir Flask pyvirtualdisplay python-environ Datetime && \
pip install --no-cache-dir glob3 pandas-gbq pandas schedule && \
pip install --no-cache-dir tabula-py beautifulsoup4 Datetime urllib3 && \
pip install --no-cache-dir gunicorn Werkzeug && \
pip install --upgrade pip --user && \
pip3 uninstall -y tabula-py && \
pip3 install tabula-py
### 1. Get Linux
FROM alpine:3.7
### 2. Get Java via the package manager
RUN apk update \
&& apk upgrade \
&& apk add --no-cache bash \
&& apk add --no-cache --virtual=build-dependencies unzip \
&& apk add --no-cache curl \
&& apk add --no-cache openjdk8-jre
### 3. Get Python, PIP
RUN apk add --no-cache python3 \
&& python3 -m ensurepip \
&& pip3 install --upgrade pip setuptools \
&& rm -r /usr/lib/python*/ensurepip && \
if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi && \
if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3 /usr/bin/python; fi && \
rm -r /root/.cache
ENV FLASK_APP main.py
ENV FLASK_RUN_HOST 0.0.0.0
ENV FLASK_RUN_PORT 8080
### Get Flask for the app
RUN pip install --trusted-host pypi.python.org flask
####
#### OPTIONAL : 4. SET JAVA_HOME environment variable, uncomment the line below if you need it
#ENV JAVA_HOME="/usr/lib/jvm/java-1.8-openjdk"
####
EXPOSE 8080
ADD main.py /
CMD ["flask", "run"]
所以我花了一段时间才弄清楚到底出了什么问题。 但是docker文件中命令的顺序显然是个问题
FROM python:3
RUN pip uninstall tabula && \
pip install --upgrade pip && \
pip install --no-cache-dir Flask pyvirtualdisplay python-environ
Datetime && \
pip install --no-cache-dir glob3 pandas-gbq pandas schedule && \
pip install --no-cache-dir tabula-py beautifulsoup4 Datetime
urllib3 && \
pip install --no-cache-dir gunicorn Werkzeug && \
pip install --upgrade pip --user && \
pip3 uninstall -y tabula-py && \
pip3 install tabula-py
### 1. Get Linux
在第四部分的第一部分中,安装了所有python库,但之后,
我删除了所有安装的python内容
RUN apk add --no-cache python3 \
&& python3 -m ensurepip \
&& pip3 install --upgrade pip setuptools \
&& rm -r /usr/lib/python*/ensurepip && \
if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi && \
if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3
/usr/bin/python; fi && \
rm -r /root/.cache
所以解决办法是删除这个部分。所以我花了一段时间才弄清楚是什么错了。 但是docker文件中命令的顺序显然是个问题
FROM python:3
RUN pip uninstall tabula && \
pip install --upgrade pip && \
pip install --no-cache-dir Flask pyvirtualdisplay python-environ
Datetime && \
pip install --no-cache-dir glob3 pandas-gbq pandas schedule && \
pip install --no-cache-dir tabula-py beautifulsoup4 Datetime
urllib3 && \
pip install --no-cache-dir gunicorn Werkzeug && \
pip install --upgrade pip --user && \
pip3 uninstall -y tabula-py && \
pip3 install tabula-py
### 1. Get Linux
在第四部分的第一部分中,安装了所有python库,但之后,
我删除了所有安装的python内容
RUN apk add --no-cache python3 \
&& python3 -m ensurepip \
&& pip3 install --upgrade pip setuptools \
&& rm -r /usr/lib/python*/ensurepip && \
if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi && \
if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3
/usr/bin/python; fi && \
rm -r /root/.cache
因此,解决方案是删除此部分。为了澄清,您提到您已经创建了Dockerfile,以便可以在Flex环境中运行应用程序。在哪里可以在本地计算机上构建Dockerfile?另外,请在
运行pip安装--可信主机pypi.python.org
之后将其他pip
命令移动到。但我明白了!谢谢你的帮助!为了清楚起见,您提到您已经创建了Dockerfile,以便可以在Flex环境中运行应用程序。在哪里可以在本地计算机上构建Dockerfile?另外,请在运行pip安装--可信主机pypi.python.org
之后将其他pip
命令移动到。但我明白了!谢谢你的帮助!