【问题标题】:Need overview explanation of dbase connectivity using python需要使用python的dbase连接的概述解释
【发布时间】:2021-02-22 11:43:53
【问题描述】:

我使用 python 和 postgreql 已经一年多了。我可以通过盲目使用各种库来连接和使用 postgres 数据库。但是每当我改变平台(最近从 macOS 笔记本电脑到远程 ubuntu 服务器)时,我都会经历一天左右的时间来尝试让库工作,例如。我在某些模块中使用了“pyodbc”,但是当我将代码迁移到服务器时,我不得不切换到“pg8000”,因为这些模块一直在抛出错误。

有人可以解释或指向一个链接,解释 python 如何连接到 dB 的吗?例如,为什么我需要一个用于“pyodbc”的 MS ODBC 驱动程序来连接到 Azure SQL 或 postgresql,但“pg8000”似乎根本不需要连接到 postgresql?当我移动到 Ubuntu 环境并安装 ODBC 驱动程序时,它们显示在 /etc 和 /opt(用于 MS ODBC)下的根目录下,但也出现在我的 Conda 环境(/anaconda3/envs/)中,我不知道哪个是'ODBC.ini' 的正确选择?

就像我说的那样,我可以让事情发挥作用,但我真的不了解它们为什么会发挥作用,这意味着我每次处理环境变化时都会浪费时间进行试验。我还没有在网上找到一个解释,它涵盖的不仅仅是一个非常具体的情况,例如。 '这里是如何安装我们的驱动程序......'任何帮助将不胜感激。

最终更新

跟随响应,尤其是。 @Thompson 下图似乎是最终解释,我对在哪里寻找答案有了更好的了解。对于记录 pyodbc,SQLAlchemy 和 pg8000 一直是我选择的工具,除了问题中所述之外没有任何问题。

【问题讨论】:

  • 我会画得更像this

标签: python-3.x postgresql database-connection pyodbc pg8000


【解决方案1】:

pyodbc 实际上不是驱动程序,也不包含驱动程序,它是“ODBC 数据库模块”,因此它更像是从 python 到 ODBC 驱动程序再到某个数据库的接口。这就是为什么要使用它,您必须有一个实际的单独驱动程序才能连接。微软拥有的 Azure SQL 将合理地需要 Microsoft 的 ODBC 驱动程序,而 Postgres 将需要 Postgres ODBC 驱动程序等......

ODBC 驱动程序管理器是特定于平台的,而 ODBC 驱动程序是特定于数据库的。这可以解释为什么如果您正在更改平台或数据库,则需要更改驱动程序。

正如 Adrian 所说,postgres 不需要 ODBC 驱动程序,更常见的是使用 postgres/python 驱动程序(例如:https://wiki.postgresql.org/wiki/Python

psycopg2 是一个实际的 PostgresSQL 驱动程序。它充当从 Python 到 postgres 的客户端,无需中介。这就是为什么您在使用它时不需要安装任何其他东西的原因。我没有用过 pg8000,但根据这个列表,它也是一个驱动程序,所以你不需要其他任何东西。

编辑添加: 将数据库视为您需要激活的一些“黑匣子”,将其驱动程序视为电源插座。 ODBC 驱动程序是一种特定类型的套接字(ODBC 是 Microsoft 开发的标准)。如果您使用从 python(如 pyodbc)到数据库的 ODBC 插件,您需要确保数据库安装/激活了 ODBC 套接字。 但是您的数据库也可以有其他套接字,例如 postgres 上提供的与 python 兼容的 DBAPI。在这种情况下,您使用不同的直接 DBAPI 连接器,例如 psycopg2。

【讨论】:

    【解决方案2】:

    驱动程序特定于数据库。 ODBC 是一个两阶段的过程。有ODBC 驱动程序管理器,然后有允许您与数据库对话的数据库特定驱动程序。你不需要ODBC 来连接到 Postgresql 服务器。如果你正在使用 Python,你只需要一个 Postgres 驱动程序。您已经找到pg8000。我的首选是psycopg2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-08
      • 2013-03-28
      • 1970-01-01
      • 2013-10-29
      • 2020-02-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多