我尝试将GCP (Google云平台): API服务与python项目一起使用。这个项目需要使用lib:pyodbc来连接到MSSQL
。
在 localhost 中,它很好,但是当我尝试将此项目部署到GCP时,它显示出这样的错误。有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
将要运行该应用程序的计算机必须已安装 ODBC头文件。
为此,您将需要在自定义运行时环境中部署应用程序,在此环境中安装此头文件,然后再安装需求。有关如何执行此操作的更多信息,请访问this answer on this Stack-overflow question。
我还将在这里发布Brooks Lybrand在上述堆栈溢出问题中描述的过程:(他的解决方案基于Connect docker python to SQL server with pyodbc)
$ gcloud beta app gen-config --custom
。Dockerfile
。通过在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
创建文件odbcinst.ini
(如果尚不存在)
编辑文件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
执行$ 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。