2017-07-28 4 views
1

Je suis très nouveau sur python et je n'arrive pas à trouver une réponse à cette erreur. Lorsque j'exécute le code ci-dessous, j'obtiens l'erreurAttributeError: le module 'odbc' n'a pas d'attribut 'connect' - python avec pydev

AttributeError: module 'odbc' has no attribute 'connect' 

Cependant, l'erreur n'apparaît que dans Eclipse. Il n'y a pas de problème si je l'exécute via la ligne de commande. Je cours python 3.5. Qu'est-ce que je fais mal? La suggestion de supprimer le bloc try ... except n'a pas fonctionné pour moi. Maintenant, l'importation réelle jette l'erreur comme ci-dessous:

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 

je n'ai pyodbc installé et l'importation et la connexion fonctionne très bien avec la ligne de commande sous Windows.

merci

Répondre

1

Le problème ici est que le module pyodbc n'importe pas dans votre bloc try/except. Je recommande fortement de ne pas mettre d'instructions d'importation dans les blocs try. Tout d'abord, vous voulez vous assurer que vous avez installé pyodbc (pip install pyodbc), de préférence dans un virtualenv, alors vous pouvez faire quelque chose comme ceci:

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) 

Si vous utilisez Windows (il apparaît donc, compte tenu de la DRIVER= paramètre), jetez un oeil à virtualenvwrapper-win pour la gestion des environnements virtuels Windows Python: https://pypi.python.org/pypi/virtualenvwrapper-win

Bonne chance!

+1

Merci. Il montre maintenant des erreurs avec l'instruction 'import pyodbc' - j'ai mis à jour ma question ci-dessus pour montrer les erreurs. – afora377

+1

Merci, votre réponse m'a aidé à trouver le cœur du problème. Maintenant résolu. – afora377

1

La réponse de Flipper a permis d'établir que le problème était de référencer une bibliothèque incorrecte dans la liste des bibliothèques externes dans eclipse. Après l'avoir réparé, le problème a été résolu.