我对python很陌生,我似乎找不到这个错误的答案。当我运行下面的代码时,我得到了这个错误
AttributeError: module 'odbc' has no attribute 'connect'
但是,这个错误只在eclipse中出现。如果我通过命令行运行它就没有问题了。我运行的是python 3.5。我做错了什么?
try:
import pyodbc
except ImportError:
import odbc as pyodbc
# Specifying the ODBC driver, server name, database, etc. directly
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=PXLstr,17;DATABASE=Dept_MR;UID=guest;PWD=password')
删除try...except块的建议对我不起作用。现在实际导入抛出如下错误:
Traceback (most recent call last):
File "C:\Users\a\workspace\TestPyProject\src\helloworld.py", line 2, in <module>
import pyodbc
File "C:\Users\a\AppData\Local\Continuum\Anaconda3\Lib\site-packages\sqlalchemy\dialects\mssql\pyodbc.py", line 105, in <module>
from .base import MSExecutionContext, MSDialect, VARBINARY
我确实安装了pyodbc,导入和连接在windows上的命令行中工作正常。
谢谢你
4条答案
按热度按时间bvjveswy1#
这里的问题是
pyodbc
模块没有导入到您的try
/except
块中。我强烈建议不要将import语句放在try
块中。首先,您需要确保您已经安装了pyodbc
(pip install pyodbc
),最好是安装在virtualenv
中,然后您可以这样做:如果你在Windows上运行(如果有
DRIVER=
参数的话,看起来是这样的),看看virtualenvwrapper-win
如何管理Windows Python虚拟环境:https://pypi.python.org/pypi/virtualenvwrapper-win祝你好运!
r7s23pms2#
Flipper的回答帮助确定了问题是在eclipse的外部库列表中引用了一个不正确的库。在修复它之后,问题得到了解决。
fae0ux8s3#
python文件的名称是什么?如果你不小心将其命名为'pyodbc.py',你会得到这个错误。因为它试图导入自己而不是预期的pyodbc模块。
2j4z5cfb4#
这里是解决方案!简单地安装和使用'pypyodbc'而不是'pyodbc'!我有我的测试例子如下。更改您的数据为SERVER_NAME和DATA_NAME和DRIVER。也把您自己的记录。祝你好运!