GCP无法使用install pyodbc进行部署

时间:2019-03-21 10:47:50

标签: python google-app-engine pyodbc

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

enter image description here

2 个答案:

答案 0 :(得分:0)

将要运行该应用程序的计算机必须已安装 ODBC头文件

为此,您将需要在自定义运行时环境中部署应用程序,在此环境中安装此头文件,然后再安装需求。有关如何执行此操作的更多信息,请访问this answer on this Stack-overflow question

我还将在这里发布Brooks Lybrand在上述堆栈溢出问题中描述的过程:(他的解决方案基于Connect docker python to SQL server with pyodbc

  1. 在与您的应用相同的目录中执行$ gcloud beta app gen-config --custom
  2. 将创建一个Dockerfile
  3. 通过在Dockerfile之前添加以下命令来编辑RUN pip install -r requirements.txt(建议:在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,它应该可以毫无问题地部署。

我自己进行了测试,但遇到了同样的错误。完成此过程后,将部署该应用程序而没有任何问题。

答案 1 :(得分:0)

现在使用命令gcloud beta app gen-config --custom时出现以下错误: 警告:此命令已弃用,不久将被删除。

作为一种替代方法,请根据您的语言的标签下的https://cloud.google.com/appengine/docs/flexible/python/configuring-your-app-with-app-yaml(App Engine灵活环境)或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。