我的计算机上安装了Python 2.7,MySQL 5.5,MySQL ODBC Connector 5.1和pyodbc,它运行的是Windows 7,64位......
唯一的问题是除了pyodbc(32位)之外,所有内容都安装为64位。
使用easy_install下载pyodbc时,会自动下载32位版本。 因此,当我尝试使用:
连接到我的数据库时cnxn = pyodbc.connect('DRIVER={MySQL ODBC 5.1 DRIVER};SERVER=localhost;DATABASE=test;UID=root;PWD=password')
我收到错误:
Data source name not found and no default driver specified (0) (SQLDriverConnect)
当我尝试使用以下命令指定DSN时
cnxn = pyodbc.connect('DSN=dsn_name;etc...')
我收到错误:
The specified DSN contains an architecture mismatch between the Driver and Application (0) (SQLDriverConnect)
此链接告诉我这是由于32/64位不匹配,正如预期的那样: http://msdn.microsoft.com/en-us/library/windows/desktop/ms712362(v=vs.85).aspx
所以我有两个问题:
1)是否可以强制easy_install下载64位pyodbc,还是可以手动下载64位pyodbc?
2)如果无法实现上述目的,是否可以使用Microsoft ODBC数据源管理器窗口配置DSN以允许此操作。
感谢。
答案 0 :(得分:4)
有一个"非官方"的列表Python模块here
PyODBC是为64位编译的其中之一。
此外,请确保您使用的是正确版本的ODBC管理器。默认设置为64位驱动程序,但您可以使用带%windir%\SysWOW64\odbcad32.exe
答案 1 :(得分:0)
我花了很多时间来找出为什么 pyodbc 无法看到64位ODBC驱动程序的原因 因为我对Windows的位数感到困惑。所以我要明确指出
Python 32位+ pyodbc 32位(从pip安装时默认)将从%windir%\SysWOW64\odbcad32.exe
读取驱动程序
Python 64位+ pyodbc 64位(您必须从here下载)将从%windir%\System32\odbcad32.exe
读取驱动程序