首页 > 解决方案 > 需要使用python的dbase连接的概述解释

问题描述

我使用 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 一直是我选择的工具,除了问题中所述之外没有任何问题。

在此处输入图像描述

标签: python-3.xpostgresqldatabase-connectionpyodbcpg8000

解决方案


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


推荐阅读