2017-07-28 58 views
1

我对python很新,我似乎无法找到这个错误的答案。当我运行下面的代码时,出现错误AttributeError:模块的'odbc'没有'连接'属性 - python pydev

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上使用命令行的作品。

谢谢

回答

1

这里的问题是,pyodbc模块没有在你的try/except块进口。我强烈建议不要在try区块中放入进口报表。首先,你要确保你已经安装pyodbcpip install pyodbc),最好在virtualenv,那么你可以做这样的事情:

import pyodbc 

cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=PXLstr,17;DATABASE=Dept_MR;UID=guest;PWD=password') 

cursor = cnxn.cursor() 
cursor.execute('SELECT 1') 

for row in cursor.fetchall(): 
    print(row) 

如果你在Windows上运行(看起来是这样,考虑到DRIVER=参数),请参阅virtualenvwrapper-win以管理Windows Python虚拟环境:https://pypi.python.org/pypi/virtualenvwrapper-win

祝您好运!

+1

谢谢。它现在用'import pyodbc'声明显示错误 - 我更新了上面的问题以显示错误。 – afora377

+1

谢谢你,你的回答帮助我找到问题的核心。现在解决了。 – afora377

1

Flipper的回答有助于确定问题出在eclipse中引用External Libraries列表中的错误库。修复后,问题解决了。

相关问题