【问题标题】:Cloud Run connect to Cloud SQL module error PythonCloud Run 连接到 Cloud SQL 模块错误 Python
【发布时间】:2020-08-05 17:16:17
【问题描述】:

我在尝试连接 Cloud Run 时不断收到错误消息,并且不断收到以下错误消息。有什么想法吗?

 __import__("pg8000") ModuleNotFoundError: No module named 'pg8000'
import pandas as pd
import sqlalchemy
import datetime
import requests
from urllib.parse import urlencode
import warnings
from flask import Flask
import os
import google
db_user = os.environ.get("DB_USER")
db_pass = os.environ.get("DB_PASS")
db_name = os.environ.get("DB_NAME")
cloud_sql_connection_name = os.environ.get("CLOUD_SQL_CONNECTION_NAME")

db = sqlalchemy.create_engine(
    # Equivalent URL:
    # postgres+pg8000://<db_user>:<db_pass>@/<db_name>?unix_sock=/cloudsql/<cloud_sql_instance_name>/.s.PGSQL.5432
    sqlalchemy.engine.url.URL(
        drivername='postgres+psycopg2',
        username=db_user,
        password=db_pass,
        database=db_name,
        query={
            'unix_sock': '/cloudsql/{}/.s.PGSQL.5432'.format(
                cloud_sql_connection_name)
        }
    ),
    # ... Specify additional properties here.
    # ...
)

【问题讨论】:

    标签: python-3.x google-cloud-platform sqlalchemy google-cloud-sql google-cloud-run


    【解决方案1】:

    您需要安装supported database drivers 之一。

    如果要使用postgres+pg8000,需要安装pg8000包,否则根据你的例子,实际需要安装psycopg2

    【讨论】:

    • 我是否需要将数据库实例的凭据替换为我自己的凭据,或者在运行 gcloud deploy 时可能会找到?谢谢达斯汀
    • 您需要使用特定于您要连接的实例的凭据来设置这些环境变量。 Cloud Run 对您要连接的数据库一无所知。
    猜你喜欢
    • 2019-10-28
    • 2020-07-01
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 2019-09-05
    • 2020-08-31
    • 2020-07-01
    相关资源
    最近更新 更多