私は64ビットpython anacondav4.4を実行していますpythonv3。MSAccess201632ビットバージョンを使用しています。pyodbcを使用したいです。 python to talktoAccess。64ビットpyodbcを使用してMSAccess 2016 32ビットデータベースと通信することは可能ですか?
私はすでに64ビットのpython anacondaで実行されているpythonアプリケーションをいくつか持っています。32ビットのpythonにダウングレードするのは面倒です。
私はpythonの専門家ではありませんが、考えられる誤解を明確にするためです... Accessデータベースファイルは32ビットまたは64ビットではありません。32ビットバージョンと64ビットバージョンの両方ofAccessは同じデータベースファイル形式を使用します。
Accessデータベースファイルに接続または使用するためにMSOffice Accessアプリケーションは必要ありません。 ODBCドライバーを含むAccessデータベースエンジンをダウンロードできます。 最新の2010バージョン には32ビットバージョンと64ビットバージョンの両方があります。指定する必要があるのは64ビットドライバーを使用するための接続文字列内の適切なドライバー。繰り返しますが、これはPythonの接続と直接通信しませんが、64ビットドライバーを使用して直接動作させることができます。
残念ながら、32ビットのMS Accessと通信するには、32ビットのPythonが必要です。ただし、32ビットバージョンのPython 64ビットPythonと一緒に。Windowsを使用していると仮定すると、カスタムインストール中に、宛先パスを選択できます。次に、virtualenv
を使用します。たとえば、C:\Python36-32
にインストールする場合:
virtualenv --python=C:\Python36-32\bin\python.exe
幸運を!
はい、できます。インストールするだけです
AccessDatabaseEngine_X64.exe /passive
(ドライバーのx86バージョンとx64バージョンの両方が含まれています)そしてあなたは大丈夫でしょう。 /passive
オプションを忘れないでください。そうすると、MS Office2010もインストールされていないとインストールされません。 Microsoft Accessデータベースエンジン2010再頒布可能サイト からファイルをダウンロードできます。
インストール後、python Shellで以下を実行して、すべてが正常であることをテストします。
import pyodbc
[x for x in pyodbc.drivers() if x.startswith('Microsoft')]
そして、あなたは次のようなプリントアウトを取得する必要があります
['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)']