J'utilise IronPython et le module clr pour récupérer des informations SQL Server via SMO. Je souhaite récupérer/stocker ces données dans une base de données SQL Server à l'aide de SQL Alchemy, mais j'ai des problèmes pour charger le module pyodbc.Utilisation de SQL Alchemy et pyodbc avec IronPython 2.6.1
est ici la configuration:
- IronPython 2.6.1 (installé à D: \ Program Files \ IronPython)
- CPython 2.6.5 (installé à D: \ Python26)
- SQL Alchemy 0.6 .1 (installés à D: \ Python26 \ Lib \ site-packages \ sqlalchemy)
- pyodbc 2.1.7 (installé à D: \ Python26 \ Lib \ site-packages)
Je ces e ntries dans le site.py IronPython à l'importation CPython et bibliothèques tierces:
# Add CPython standard libs and DLLs
import sys
sys.path.append(r"D:\Python26\Lib")
sys.path.append(r"D:\Python26\DLLs")
sys.path.append(r"D:\Python26\lib-tk")
sys.path.append(r"D:\Python26")
# Add CPython third-party libs
sys.path.append(r"D:\Python26\Lib\site-packages")
# sqlite3
sys.path.append(r"D:\Python26\Lib\sqlite3")
# Add SQL Server SMO
sys.path.append(r"D:\Program Files\Microsoft SQL Server\100\SDK\Assemblies")
import clr
clr.AddReferenceToFile('Microsoft.SqlServer.Smo.dll')
clr.AddReferenceToFile('Microsoft.SqlServer.SqlEnum.dll')
clr.AddReferenceToFile('Microsoft.SqlServer.ConnectionInfo.dll')
SQL Alchemy importe OK dans IronPython, mis je reçois ce message d'erreur lorsque vous essayez de vous connecter à SQL Server:
IronPython 2.6.1 (2.6.10920.0) on .NET 2.0.50727.3607
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlalchemy
>>> e = sqlalchemy.MetaData("mssql://")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:\Python26\Lib\site-packages\sqlalchemy\schema.py", line 1780, in __init__
File "D:\Python26\Lib\site-packages\sqlalchemy\schema.py", line 1828, in _bind_to
File "D:\Python26\Lib\site-packages\sqlalchemy\engine\__init__.py", line 241, in create_engine
File "D:\Python26\Lib\site-packages\sqlalchemy\engine\strategies.py", line 60, in create
File "D:\Python26\Lib\site-packages\sqlalchemy\connectors\pyodbc.py", line 29, in dbapi
ImportError: No module named pyodbc
Ce code fonctionne très bien dans CPython, mais il semble que le module pyodbc n'est pas accessible depuis IronPython.
Des suggestions? Je me rends compte que ce n'est peut-être pas la meilleure façon d'aborder le problème, alors je suis ouvert à aborder cette question différemment. Je voulais juste apprendre à utiliser SQL Alchemy et pyodbc.
Merci d'avoir posté votre réponse! Veuillez vous assurer de lire attentivement la [FAQ sur l'autopromotion] (http://stackoverflow.com/faq#promotion). Notez également qu'il est * obligatoire * que vous publiez une clause de non-responsabilité chaque fois que vous créez un lien vers votre propre site/produit. –
https://code.google.com/p/pypyodbc/wiki/Enable_SQLAlchemy_on_IronPython – cmotley