【问题标题】:ODBC access from Mac install of Python to Access database installed in Parallels从 Mac 安装的 Python 到 Parallels 中安装的 Access 数据库的 ODBC 访问
【发布时间】:2017-02-19 09:08:07
【问题描述】:

我想将我的 Python 包链接到我的 Access 数据库,但我收到此错误。我使用 python 2.7.12 (shell)。

import pypyodbc

#create connection
con = pypyodbc.connect('DRIVER={Microsoft Access-Treiber (*.mdb)};UID=admin;UserCommitSync=Yes;Threads=3;SafeTransactions=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=2048;FIL={MS Access};DriverId=25;DefaultDir=//Users/123GuteLaune/DatabaseMAformat.mdb')


cursor = con.cursor()

#Select Data
cursor.execute("SELECT * from TW-DS")

for row in cursor.fetchone():
    print(row)}

回溯(最近一次通话最后一次):
文件“”,第 1 行,在
导入 pypyodbc
ImportError:没有名为 pypyodbc 的模块

编辑

您好,第二次安装后出现以下错误

回溯(最近一次调用最后一次):文件“/Users/123GuteLaune/Python/connectionprogramm.py”,第 4 行,在 con = pypyodbc.connect('DRIVER={Microsoft Access-Treiber (*.mdb)}; UID=admin;UserCommitSync=Yes;Threads=3;SafeTransactions=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=2048;FIL={MS Access};DriverId=25;DefaultDir=//Users/123GuteLaune/DatabaseMAformat.mdb ') 文件“build/bdist.macosx-10.6-intel/egg/pypyodbc.py”,第 2435 行,在 init self.connect(connectString, autocommit, ansi, timeout, unicode_results, readonly) 文件“build/bdist.macosx- 10.6-intel/egg/pypyodbc.py”,第 2484 行,在连接 check_success(self, ret) 文件“build/bdist.macosx-10.6-intel/egg/pypyodbc.py”,第 989 行,在 check_success ctrl_err(SQL_HANDLE_DBC, ODBC_obj.dbc_h, ret, ODBC_obj.ansi) 文件“build/bdist.macosx-10.6-intel/egg/pypyodbc.py”,第 976 行,在 ctrl_err err_list.append((from_buffer_u(state), from_buffer_u(Message), NativeError .value)) 文件“build/bdist.macosx-10.6-intel/egg/pypyodbc.py”,第 483 行,在 UCS_dec uchar = buffer.raw[i:i + ucs_length].decode(odbc_decoding) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/utf_32.py”,第11行,解码返回编解码器.utf_32_decode(input, errors, True) UnicodeDecodeError: 'utf32' codec can't decode bytes in position 0-1: truncated data

编辑于 12.10.2016

我使用带有 macOS El Captain 的 Mac。我的笔记本电脑上有程序“Parallels”,用于在虚拟机中使用 Access。 Python 安装在 Mac 端。

为了让 Python 可以使用 ODBC 接口访问 Access,我必须进行哪些更改?

编辑 13.10.2016

我找到了一个工具包“pyodbc”,我认为这应该可以在 mac 上运行,但我再次无法运行安装文件,我得到了错误。我已经安装了 homebrew 并找到了这个安装文档 (https://github.com/lionheart/django-pyodbc/wiki/Mac-setup-to-connect-to-a-MS-SQL-Server)

python 中的错误: 回溯(最近一次通话最后): 文件“/Users/123GuteLaune/connectionprogramm.py”,第 1 行,在 导入pyodbc ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pyodbc.so,2):未加载库:/usr/local/lib/libodbc.2.dylib 引用自:/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pyodbc.so 原因:找不到图片

【问题讨论】:

  • 你安装了pypyodbc包吗?如果是这样,请验证权限并且它在您的 PYTHONPATH 中
  • 听起来您需要打开命令提示符并运行pip install pypyodbc 才能实际安装该软件包,以便您可以使用它。
  • 您的回溯包括 build/bdist.macosx-10.6-intel/... 但您的连接字符串看起来像是用于 Windows 机器的。您在哪个平台上运行?

标签: python macos python-2.7 ms-access pypyodbc


【解决方案1】:

如果您在 Mac 端运行 Python,则需要使用与 macOS 兼容的驱动程序。 Microsoft Access-Trebier (*.mdb) ODBC 驱动程序是一个 Windows DLL (ODBCJT32.DLL),我非常怀疑 Mac 版本的 Python 是否可以使用它。

您可能对这里的相关问题感兴趣:

Read an Access database in Python on non-Windows platform (Linux or Mac)

【讨论】:

  • 您好,感谢您的帖子。我不知道 pypyodbc 仅适用于 windows/linux。我阅读了您发布的链接,但我在 Jython 中执行脚本时遇到了困难。我不能打开终端来实现脚本? (对不起,我对编程和它周围的所有东西一无所知)
猜你喜欢
  • 1970-01-01
  • 2014-06-27
  • 2012-05-24
  • 2010-11-29
  • 1970-01-01
  • 2014-06-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多