GCP 无法通过安装 pyodbc 进行部署

GCP Cann't deploy with install pyodbc

我正在尝试使用 GCP (Google 云平台) : API Service 和 python 项目。这个项目需要使用 lib : pyodbc 来连接到 MSSQL。 在 localhost 中很好,但是当我尝试将此项目部署到 GCP 时,它显示这样的错误。有人可以帮我解决这个问题吗?

运行 运行 应用程序的机器必须安装 ODBC 头文件

为此,您需要在自定义 运行 时间环境中部署应用程序,在安装要求之前先在其中安装此头文件。有关如何执行此操作的更多信息,请访问

我也会post这里描述的过程Brooks Lybrand in Stack-overflow question mentioned above: (His solution is based on )

  1. 在与您的应用相同的目录中执行 $ gcloud beta app gen-config --custom
  2. 将创建一个 Dockerfile
  3. 通过在 RUN pip install -r requirements.txt 之前添加以下命令来编辑 Dockerfile(建议:在 RUN virtualenv ... 之后和 # Set virtualenv environment variables ... 之前添加这些行):

    #Install FreeTDS and dependencies for PyODBC RUN apt-get update RUN apt-get install -y tdsodbc unixodbc-dev RUN apt install unixodbc-bin -y RUN apt-get clean -y ADD odbcinst.ini /etc/odbcinst.ini

  4. 创建一个文件odbcinst.ini如果不存在

  5. 编辑文件 odbcinst.ini 并添加以下内容:

    [FreeTDS] Description=FreeTDS Driver Driver=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so Setup=/usr/lib/x86_64-linux-gnu/odbc/libtdsS.so

  6. 执行 $ gcloud app deploy 它应该可以毫无问题地部署。

我自己测试过,我得到了同样的错误。在此过程之后,应用程序已部署,没有任何问题。

我现在在使用命令 gcloud beta app gen-config --custom 时收到以下错误: 警告:此命令已弃用,很快就会被删除。

作为替代方案,您可以根据您的语言选项卡下 https://cloud.google.com/appengine/docs/flexible/python/configuring-your-app-with-app-yaml (App Engine Flexible Environment) or https://cloud.google.com/appengine/docs/standard/python/config/appref(App Engine 标准环境)中的说明自行创建一个 app.yaml 文件。

要创建自定义运行时,请按照以下说明进行操作 https://cloud.google.com/appengine/docs/flexible/custom-runtimes/

错误:(gcloud.beta.app.gen-config) 此命令不支持 python3.