Saltar al contenido

¿Es posible que pyodbc de 64 bits se comunique con la base de datos de acceso MS de 32 bits?

Solución:

Sí tu puedes:

Solo instala

AccessDatabaseEngine_X64.exe /passive

(que contiene las versiones x86 y x64 de los controladores) y estará bien. No te olvides del /passive opción porque si lo hace no se instalará a menos que también tenga instalado MS Office 2010. Puede descargar el archivo del sitio redistribuible de Microsoft Access Database Engine 2010

Después de instalar AccessDatabaseEngine_X64.exe debe ejecutar el siguiente código en su shell de Python para probar que todo está bien:

import pyodbc
[x for x in pyodbc.drivers() if x.startswith('Microsoft')]

y deberías obtener una impresión como

['Microsoft Access Driver (*.mdb, *.accdb)',
 'Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)',
 'Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx)', 
 'Microsoft Access Text Driver (*.txt, *.csv)']

Cuídate.

Desafortunadamente, necesita Python de 32 bits para hablar con MS Access de 32 bits. Sin embargo, debería poder instalar una versión de 32 bits de Python junto con Python de 64 bits. Suponiendo que está utilizando Windows, durante una instalación personalizada puede elegir la ruta de destino. Entonces usa un virtualenv. Por ejemplo, si instala en C:Python36-32:

virtualenv --python=C:Python36-32binpython.exe

¡Buena suerte!

No soy un experto en Python, pero solo para aclarar algunos posibles conceptos erróneos … El archivo de la base de datos de Access no es de 32 bits ni de 64 bits. Tanto la versión de 32 bits como la de 64 bits de Access utilizan el mismo formato de archivo de base de datos.

Tú haces no necesita la aplicación MS Office Access para conectarse o usar un archivo de base de datos de Access. Puede descargar Access Database Engine, que incluye controladores ODBC. La versión más reciente de 2010 tiene versiones de 32 y 64 bits. Solo necesita especificar el controlador adecuado en su cadena de conexión para usar el controlador de 64 bits. Nuevamente, esto no habla directamente de las conexiones en Python, pero quizás pueda hacer que funcione directamente usando controladores de 64 bits.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *