2016-10-10 53 views
0

我想将我的Python包链接到我的Access数据库,但出现此错误。我使用python 2.7.12(shell)。从Mac安装的ODBC到Parallels中安装的Access数据库的ODBC访问

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
导入错误:没有模块名为pypyodbc

编辑

喜后第二次安装出现以下错误

Trac eback(最近的最后一次调用):文件“/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')File “build/bdist.macosx-10.6-intel/egg/pypyodbc.py”,第2435行,在init self.connect(connectString,autocommit,ansi,timeout,unicode_results,只读)文件“build/bdist.macosx-10.6-intel /etc/pypyodbc.py“,第2484行,在check_success ctrl_err(SQL_HANDLE_DBC,ODBC_obj.dbc_h)中的check_success(self,ret)文件中的”build/bdist.macosx-10.6-intel/egg/pypyodbc.py“,第989行,ret,ODBC_obj.ansi)ctrl_err err_list.append((from_buffer_u(state),from_buffer_u(Message),NativeError.value)中的文件“build/bdist.macosx-10.6-intel/egg/pypyodbc.py”,第976行, )在UCS_dec uchar = buffer中的文件“build/bdist.macosx-10.6-intel/egg/pypyodbc.py”,第483行。原始[i:i + ucs_length] .decode(odbc_decoding)文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/utf_32.py”,第11行,解码返回codecs.utf_32_decode (输入,错误,真)的UnicodeDecodeError: 'UTF32' 编解码器不能解码位置0-1字节:在2016年10月12日

截断数据

编辑我用的MacOS萨尔瓦多队长一台Mac。我的笔记本电脑上有“Parallels”程序,用于在虚拟机中使用Access。 Python安装在Mac端。

我必须改变Python可以使用ODBC接口来访问吗?

编辑2016年10月13日

我找到一个工具包“pyodbc”我认为这应该在Mac上工作,但我又不能运行安装文件,我得到了错误。我已经安装自制软件,找到这个dokumentation在Python中安装(https://github.com/lionheart/django-pyodbc/wiki/Mac-setup-to-connect-to-a-MS-SQL-Server

错误: 回溯(最近通话最后一个): 文件 “/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 原因:未找到图像

+0

您是否安装了pypyodbc包?如果是,请验证权限并确保它位于PYTHONPATH –

+0

听起来您需要打开命令提示符并运行'pip install pypyodbc'来实际安装软件包,以便您可以使用它。 –

+0

您的回溯包括'build/bdist.macosx-10.6-intel/...'但您的连接字符串看起来像是Windows机器。你在哪个平台上运行? –

回答

0

如果您在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)

+0

嗨,感谢这篇文章。 Iam不知道pypyodbc只适用于windows/linux。我读过你的发布的链接,但我在Jython中执行脚本时感到困难。我不能打开终端来实现脚本? (抱歉,我不知道编程和它周围的所有东西) – 123GuteLaune